给定一个熊猫数据框,其中带有一些标记的序列,例如Name和Villain。
假设数据框具有以下值:
名称:{“蝙蝠侠”,“蝙蝠侠”,“蜘蛛侠”,“蜘蛛侠”,“蜘蛛侠”,“蜘蛛侠”}
反派分子:{“小丑”,“贝恩”,“绿色妖精”,“电”,“毒液”,“章鱼博士”}
上面的数据框总共有2个系列(或列),每个系列有六个数据点。
现在,基于“名称”,我想再将3列连接:每个数据点的名字,姓氏,LoveInterest。
其结果添加了'Bruce;韦恩;猫女”到名称为“蝙蝠侠”的每一行。还有彼得派克;玛丽·简(MaryJane)到名称为蜘蛛侠的每一行。
最终结果应该是一个包含5列(系列)和6行的数据框。
最佳答案
这是经典的内部联接方案。在pandas
中,使用merge
模块级功能:
In [13]: df1
Out[13]:
Name Villain
0 Batman Joker
1 Batman Bane
2 Spiderman Green Goblin
3 Spiderman Electro
4 Spiderman Venom
5 Spiderman Dr. Octopus
In [14]: df2
Out[14]:
FirstName LastName LoveInterest Name
0 Bruce Wayne Catwoman Batman
1 Peter Parker MaryJane Spiderman
In [15]: pd.DataFrame.merge(df1,df2,on='Name')
Out[15]:
Name Villain FirstName LastName LoveInterest
0 Batman Joker Bruce Wayne Catwoman
1 Batman Bane Bruce Wayne Catwoman
2 Spiderman Green Goblin Peter Parker MaryJane
3 Spiderman Electro Peter Parker MaryJane
4 Spiderman Venom Peter Parker MaryJane
5 Spiderman Dr. Octopus Peter Parker MaryJane