【发布时间】:2019-03-27 09:47:07
【问题描述】:
我正在尝试将两个 csv 文件(a 和 b)合并为一个(c)。 csv 文件如下所示:
--- CSV A ---
Field_1, Key
a0 , k0
a1 , k1
a2 , k2
a3 , k0
a4 , k2
a5 , k0
--- CSV B ---
Key, Field_2, Field_3
k0 , b0 , c0
k1 , b1 , c1
k2 , b2 , c2
k3 , b3 , c3
--- 预期的 CSV C(合并的 csv)---
Field_1, Key, Field_2, Field_3
a0 , k0 , b0 , c0
a1 , k1 , b1 , c1
a2 , k2 , b2 , c2
a3 , k0 , b0 , c0
a4 , k2 , b2 , c2
a5 , k0 , b0 , c0
所以基本上应该连接 csv b 中与 csv a 的键匹配的字段以获得 csv c。但相反,我让下一个合并的字段为空
--- 实际 CSV C ---
Field_1, Key, Field_2, Field_3
a0 , k0 , ,
a1 , k1 , ,
a2 , k2 , ,
a3 , k0 , ,
a4 , k2 , ,
a5 , k0 , ,
这是我试图用来合并这些字段的代码。但正如我所说,我无法从合并的 csv b 中获取数据,我只能获取标题。
a = pd.read_csv("a.csv")
b = pd.read_csv("b.csv").rename(columns={'Key': ' Key'})
result = a.merge(b, on=" Key", how="left")
result.to_csv("c.csv", index=False)
那么我该怎么做才能正确合并来自 csv b 的数据?谢谢。
【问题讨论】:
-
你可以在 csv 模块中使用
csv.DictReader(),阅读python文档
标签: python python-3.x pandas csv merge