繁体   English   中英

Python Pandas Inner加入2个具有不同标题的csv文件

[英]Python pandas Inner join 2 csv files with different header

我做了一些研究,但找不到适合我的案例的答案,我有2个CSV文件

CSV

id, fname, lname, address
1, aaa, bbb, ccc
2, abb, ccb, ddd
3, ddd, eee, fff
4, eee, ggg, fff
5, EEE, GGG, RRRR

和第二个文件

b.csv

ID
1
3
5

期望的结果是(下面的id标头并不严格,但id可以)

id, fname, lname, address
1, aaa, bbb, ccc
3, ddd, eee, fff
5, EEE, GGG, RRRR

我尝试过的

merged = a.merge(b, left_on = ['id'],
                right_on= ['ID'],
                how = 'inner')
merged.to_csv(r'C:\things\output.csv', index=False)

并无法为数组错误分配内存...

编辑:

如果标头完全相同(都为'id'),则下面的代码可以正常工作,但生活并不完美

merged = a.merge(b, on = 'id')

使用isin

merged=a.loc[a.id.isin(b.ID),:]

我想你应该能够做

merged = pd.merge(a, b, left_on = ['id'],
            right_on= ['ID'],
            how = 'inner').drop('ID', axis='columns')
merged.to_csv(r'C:\things\output.csv', index=False)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM