我想在csv文件中添加行(它是BOM),如果它們是相同的並且位於同一部分中,但不是如果它們是特定類型。 這裏是讓它能夠更加清晰:如何在csv數據中實現python3.x中的「sumif」
LevelName,Type,Amount
Part_1,a,1
Part_1,a,1
Part_1,b,1
Part_1,c,1
Part_1,d,1
Part_1,f,1
Part_2,a,1
Part_2,c,1
Part_2,d,1
Part_2,a,1
Part_2,a,1
Part_2,d,1
Part_2,d,1
,所以我需要一個部分但如果類型是「d」內的一些的所有類型。 結果應該是這樣的:
LevelName,Type,Amount
Part_1,a,2
Part_1,b,1
Part_1,c,1
Part_1,d,1
Part_1,f,1
Part_2,a,3
Part_2,c,1
Part_2,d,1
Part_2,d,1
Part_2,d,1
不幸的是我不能使用任何外部庫。所以熊貓在這裏不是選擇。
這是我在多大程度上得到:
import csv
map = {}
with open('infile.csv', 'rt') as f:
reader = csv.reader(f, delimiter = ',')
with open('outfile.csv', 'w', newline='') as fout:
writer = csv.writer(fout, delimiter=';', quoting=csv.QUOTE_MINIMAL)
writer.writerow(next(reader))
for row in reader:
(level, type, count) = row
if not type=='d':
那麼,在這裏我只是沒有得到提前... 感謝您的任何提示!
非常感謝。因此結果如下:{'Part_1':{'f':1,'b':1,'c':1,'a':2},'Part_2':{'c':1 ,'a':3}}。此刻正在打破我的頭腦的是,如何才能將其恢復到原始格式?如果還有更多列需要複製,我該怎麼辦? – himself
請參閱編輯以回寫原始格式。這是否回答這個問題?給予好評? –
是的。因爲我錯過了聲望,我無法贊成。非常感謝!,只是意識到我可以檢查! – himself