【发布时间】:2014-11-26 09:30:52
【问题描述】:
我有两个 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 的字段为空值)。
我在这里做错了什么以及如何正确地加入
注意:在file1 中,文件名有点不同,因此我在阅读上面的 file1.csv 时正在重命名它们
【问题讨论】:
-
你能提供这两个文件的样本吗?
-
@Marcin 不幸的是,由于一些权限问题,我无法提供示例。如果这些问题不存在,我会提供的
-
有时不同的数据类型会破坏合并。如果它们是整数,请尝试将每一列强制为整数:
df['col_name'] = df['col_name'].astype(int) -
我认为您正在使用相同的 csv 文件,即
file1.csvina和b。