【发布时间】:2017-07-12 22:33:38
【问题描述】:
我整天都在努力寻找解决方案。阅读至少十几篇关于此主题的帖子,但似乎没有任何效果。
我有两个需要按 ID 合并的 csv 文件。这两个文件都有两个名称相同的列:Org ID 和 Org Name。以下是我的代码:
第一个文件
name_cols = ['GUID1', 'GUID2', 'Org ID', 'Org Name', 'Org Type', 'Chapter', 'Join Date', 'Effective Date', 'Expire Date']
pull_cols = ['Org ID', 'Org Name', 'Org Type', 'Chapter', 'Join Date', 'Effective Date','Expire Date']
df1 = pd.read_csv(path, header=None, encoding="ISO-8859-1", names=name_cols, usecols=pull_cols, index_col='Org ID')
第二个文件
name_cols = ['GUID1', 'Org ID', 'Org Name', 'Transaction Date', 'Product Name', 'Sales Price', 'Invoice Code', 'Payment Amount', 'Add Date']
pull_cols = ['Org ID', 'Org Name', 'Transaction Date', 'Product Name', 'Sales Price', 'Invoice Code', 'Payment Amount', 'Add Date']
df2 = pd.read_csv(path, header=None, encoding="ISO-8859-1", names=name_cols, usecols=pull_cols, index_col='Org ID')
我仍在探索 pandas,任何关于我应该如何处理它的线索都会非常有用。
【问题讨论】:
-
你试过
pd.merge(df1, df2, how='outer', on=['Org ID', 'Org Name'])吗?how=可以更改为您喜欢的任何连接类型,介于“内”、“左”、“右”和“外”之间。 -
@cmaher 是的。那是我第一次去,但我得到了:KeyError: 'Org ID'
-
KeyError 告诉您密钥不在您的 DataFrame(s) 中。我建议您检查
df1和df2是否按预期导入。此外,您应该始终发布您已经尝试过的内容,以便 cmets/answers 尽可能高效。 -
@cmaher 谢谢。当我运行 df1.head() 和 df2.head() 时,我确实得到了包含 Org ID 的所有数据的输出。我正在查看我的 Jupyter 笔记本文件中的两个输出,并且可以看到两个表的数据。
-
您可以使用
df1['Org ID']语法从两个DataFrame 中访问Org ID列?