0
我想合併兩個csv文件與一個共同的id列並將合併寫入一個新的文件。我曾嘗試以下,但它給我一個錯誤 -通過共同的列合併兩個CSV文件python
import csv
from collections import OrderedDict
filenames = "stops.csv", "stops2.csv"
data = OrderedDict()
fieldnames = []
for filename in filenames:
with open(filename, "rb") as fp: # python 2
reader = csv.DictReader(fp)
fieldnames.extend(reader.fieldnames)
for row in reader:
data.setdefault(row["stop_id"], {}).update(row)
fieldnames = list(OrderedDict.fromkeys(fieldnames))
with open("merged.csv", "wb") as fp:
writer = csv.writer(fp)
writer.writerow(fieldnames)
for row in data.itervalues():
writer.writerow([row.get(field, '') for field in fieldnames])
兩個文件有「stop_id」一欄,但我發現這個錯誤回來 - KeyError異常:「stop_id」
任何幫助非常感謝。
由於
'data.setdefault(row [「stop_id」],{})。update(row)' - 爲什麼這麼複雜? – Alleo
另外,按列合併兩個表是用'pandas.merge'完成的,請參閱http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational - 代數 – Alleo
我用另一個堆棧溢出示例作爲輸入。你能提出一個替代方案嗎?謝謝 – sgpbyrne