在python中的公共列上连接两个csv文件

时间:2014-11-26 09:30:53

标签: python csv join pandas

我有两个csv个文件,其中包含以下字段:

文件1:

objectID,objectName,objecttype

文件2:

objectID,objectprice,objecttotalprice

这两个文件中的数据由,分隔。我想要的是在objectID上加入这两个文件。输出应该已经连接了数据和文件1的数据,这些数据与文件2不匹配。我尝试了这段代码,但没有给出正确的输出:

import pandas as pd

a = pd.read_csv("file1.csv", names = ["objectID", "objectName", "objecttype"],header = 0).astype(basestring)

    b = pd.read_csv("file1.csv").astype(basestring)

    merged= a.merge(b, on='objectID',how='outer')

    merged.to_csv("output.csv", index=False)

当我在输出中运行时,我得到file1的数据(file2字段的空值),后跟file2的数据(file1的字段为空值1}})。

我在这里做错了什么以及如何正确加入

注意:file1中,字段名称略有不同,因此我在上面读取file1.csv时重命名它们

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找左连接,请尝试

merged= a.merge(b, on='objectID', how='left')

它的工作方式与SQL类似(参见documentation