1
每當「呼叫解決時間」列中有新的月份時,我想要在該月份和年份創建新的csv文件。並且將包含該月份和年份的所有行都過濾到新的csv中。按月過濾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.csv從alldata.csv創造了5/XX/2015只數據
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
謝謝,它給了我一個「IndexError:列表索引超出範圍」。我定義了讀者並檢查了它是從右邊一排拉出的。在第16行,在 group = list(group)line 9,in_month date = row [7]' –
iOSecure
@iOSecure'row [7]'??? !!我寫了'row [0]' –
@C Panda我已經縮短了紙張,在第7行的實際紙張上縮短了。不知道這是否是更改的正確區域 – iOSecure