【发布时间】:2015-09-12 02:38:58
【问题描述】:
我有一个包含一些字段的主表。我想和一堆其他的 csv 一起加入它。
当前数据如下:
文件 1:
Key Attrib1 Attrib2 Attrib3 Attrib4
文件 2:
Key Attrib5
文件 3:
Key Attrib6
我希望我的最终输出看起来像:
Key Attrib1 Attrib2 Attrib3 Attrib4 Attrib5 Attrib6, etc.
并非所有文件都包含所有密钥。
当前代码:
master = "in.csv"
file1 = "file.csv"
file2 = "file2.csv"
prime = list()
D1 = {}
with open(master) as f:
for k in csv.reader(f):
prime.append(k[0])
for k in prime:
with open(file1,'r') as csvfile:
rd = csv.reader(csvfile,delimiter=",")
for row in rd:
if row[0] ==k:
D1 = dict((row[0],row[1]) for rows in rd)
with open(file2,'r') as csvfile:
rd = csv.reader(csvfile,delimiter=",")
for row in rd:
if row[0] ==k:
D1 = D1+dict((row[0],row[1]) for rows in rd)
【问题讨论】:
-
文件 1 是您在代码中所称的
master吗?如果不是,它是什么样子的? -
你怎么知道其他文件的属性是什么?他们每个人只有一个吗?
-
是的,文件 1 就是我所说的主文件。看起来像: Key Attrib1 Attrib2 Attrib3 Attrib4
-
在其他文件中,每个文件有 2 列,我知道它们的名称 - 尽管它们在每个文件中都不同。第 1 列始终是关键,但第 2 列可能是各种各样的东西。
标签: python csv join merge python-2.5