0
我有一個文件路徑充滿了CSV文件。我正在使用Python glob
打開它們,並使用csv.DictReader()
來讀取它們,並將數據解析爲字母作爲關鍵字的字典。在不同的字典中爲同一個鍵求和多個值Python
在CSV文件中的數據是這樣的:
CSVfile1:
Name,A,B,C,D,Date
John,-1,2,4.0,-5.1,3/23/2016
Jacob,0,3,2.0,-2.3,3/23/2016
Jinglehimmer,1,100,5.0,-.1,3/23/2016
CSVfile2:
Name,A,B,C,D,Date
John,5,4,1.0,-1,3/24/2016
Jacob,0,1,7.0,-.1,3/24/2016
Schmidt,10,9,8,7,3/24/2016
我試圖總結在A
,B
,C
數據和D
列在指定日期(例如過去2天)內的每個名稱。例如,我試圖讓字典的一個新的列表,看起來像這樣:
{Name: John, A: 4, B: 6, C: 5.0, D: -6.1, Date: 2}
{Name: Jacob, A: 0, B: 4, C: 9.0, D: -2.4, Date: 2}
{Name: Jinglehimmer, etc.}
{Name: Schmidt, etc.}
這裏是我到目前爲止,我知道作品的代碼。這將打開每個CSV並創建一個字典的每一行,讓我通過字典迭代:
import csv
import glob
path = "."
newdict = {}
for filename in glob.glob(path):
with open(filename) as csv_file:
for row in csv.DictReader(csv_file):
編輯: 我想簡單地所有關鍵值相加成一個新的字典,但我碰到一個int + str錯誤。
for k in row.keys():
newdict[k] = newdict.get(k,0) + row[k]
我也不清楚如何被Date:
鍵來過濾數據的只得到x天。
任何幫助或點在正確的方向非常感謝。
有什麼不同的方式的一羣人,請問是什麼問題? –
@PeterWood好問題。我試着簡單地開始,總結所有CSV的所有值。但是這打破了,因爲我不能添加int和str。 對於row.keys中的k(): newdict [k] = newdict.get(k,0)+ row [k] – tulanejosh
好吧,把它放在你的問題中。這就是你需要幫助的。 –