「通話解決時間」列に新しい月があるたびに、その月と年で新しいcsvファイルを作成したいと思います。そして、その月と年を含むすべての行がその新しいcsvにフィルタリングされます。
このような:
alldata.csv
Call Resolve Time Priority Overall Result
8/6/2015 P4 F
5/13/2015 P4 F
4/28/2015 P4 P
5/13/2015 P4 F
5/27/2015 P4 F
2015年5月XX日のデータのみを含むalldata.csvから作成された新しいファイルMay-2015.csv
Call Resolve Time Priority Overall Result
5/13/2015 P4 F
5/13/2015 P4 F
5/27/2015 P4 F
これまでのところ私はこれを持っていますが、毎年と毎月のために手動で何かを作成する必要があります:
reader = csv.reader(open(r"alldata.csv"), delimiter=',')
filtered = filter(lambda p: '5/27/15' == p[1], reader)
csv.writer(open(r"May-2015.csv",'w'),delimiter=',').writerows(filtered)
編集------------------------------------------------- --------------------------
# say, reader is the reader object
# do next(reader) to skip the headings
import csv
from itertools import groupby
reader = csv.reader(open(r"alldata.csv"), delimiter=',')
def by_month (row):
date = row[7]
month = int(date.split("/", 1)[0])
return month
m_g = groupby(reader, by_month)
for month, group in m_g:
group = list(group)
# use a month to month_name map
with open('{}.csv'.format(month), 'w') as fw:
w = csv.writer(fw)
w.writerows(group)
手動で日付を追加します。
def by_month(row):
date = '5/9/2016'
month = int(date.split("/", 1)[0])
return month
次のことを試してください、
# say, reader is the reader object
# do next(reader) to skip the headings
from itertools import groupby
def by_month(row):
date = row[0]
month = int(date.split("/", 1)[0])
return month
m_g = groupby(reader, by_month)
for month, group in m_g:
group = list(group)
# use a month to month_name map
with open('{}.csv'.format(month), 'w') as fw:
w = csv.writer(fw)
w.writerows(group)
何かが機能していない場合はコメントしてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加