熊猫合并匹配不同的行

我有两个数据框,其中旧版本和新版本中的某些项目(a、b、c...)名称以不同的顺序排列。这里 old_a 和 new_a 是不同的词(示例old_a='cat', new_a='dog')。非常简化;

http://img.mukewang.com/616e2e230001f4ed03470149.jpg

我想得到下面的数据框;

http://img2.mukewang.com/616e2e2c0001624602820119.jpg

我可以通过以下方式找到相应的索引

df= pd.merge(df1.reset_index(), df2.reset_index(), on=['names'])

但这给了我下面的 df,我如何从这里到所需的上面的数据框?

http://img2.mukewang.com/616e2e360001d6a402170122.jpg

MMMHUHU
浏览 173回答 1
1回答

叮当猫咪

你应该使用pd.concat:In [829]: df1Out[829]:    names0  old_a1  old_b2  old_c3  old_dIn [828]: df2Out[828]:    names0  new_a1  new_b2  new_c3  new_dIn [830]: df = pd.concat([df1.rename(columns={'names':'old_names'}),df2.rename(columns={'names':'new_names'})], axis=1)In [833]: dfOut[833]:   old_names new_names0     old_a     new_a1     old_b     new_b2     old_c     new_c3     old_d     new_d
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python