我試圖將幾行csv數據合併到一個長行中,因爲兩個單元格包含相同的數據。例如,採取以下CSV:Python csv:合併具有相同字段的行
one, two, three
1, 2, 3
4, 5, 6
7, 8, 9
1, 1, 1
4, 4, 4
如果兩排在行共享相同的值[0],我想在第二行附加到第一個。所以我的最終產品應該是這樣的:
one, two, three
1, 2, 3, 1, 1, 1
4, 5, 6, 4, 4, 4
7, 8, 9
這是迄今爲止我嘗試:
import csv
uniqueNum = []
uniqueMaster = []
count = -1
with open("Test.csv", "rb") as source:
reader = csv.reader(source)
header = next(reader)
for row in reader:
if row[0] not in uniqueNum:
uniqueMaster.append(row)
uniqueNum.append(row[0])
count = count + 1
for row in reader:
if row[0] in uniqueNum:
uniqueMaster[count].append(row)
with open("holding.csv","wb") as result:
writer = csv.writer(result)
writer.writerow(header)
for row in uniqueMaster:
writer.writerow(row)
事情看起來好給我,但我的腳本只輸出如下:
one, two, three
1, 2, 3, ['1', '1', '1']
這顯然是錯誤的,原因有兩個。首先,它不會遍歷整個csv,其次,附加值被壓縮到一個單元格中,而不是單個單元格中。如果任何人有任何建議讓這個工作正確,我會非常感激!
感謝您的答覆。這幾乎是這樣 - 行落入正確的位置,但它們的格式不正確。例如,第一個鍵/值對是:'{'1':['1','2','3',['1','1','1']]}'像這樣:'{'1':['1','2','3','1','1','1']}'。有關修復這最後一部分的任何建議? – bumble
修正了它。它應該使用extend()而不是append()。有關更多信息,請參閱此[post](http://stackoverflow.com/questions/252703/append-vs-extend)。具體來說,亞倫廳給出了一個很好的解釋,包括運行時間。 –
如果這項工作,請接受答案 –