[英]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.