给定一个熊猫数据框,其中带有一些标记的序列,例如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

10-04 21:00