根据Pandas中的另一列连接一组列值

2024-06-14 17:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个Pandas数据帧,其中有几个标记序列,比如NameVillain。在

假设数据帧具有以下值:
姓名:{Batman'、'Batman'、'Spiderman'、'Spiderman'、'Spiderman'、'Spiderman'}
恶棍:{“小丑”,“毒药”,“绿妖精”,“电子”,“毒液”,“章鱼博士”}

以上数据帧总共有2个系列(或列),每个系列有6个数据点。在

现在,基于Name,我想再连接3列:FirstName、LastName、LoveInterest到每个数据点。在

其结果是在每一行有蝙蝠侠名字的行上加上“布鲁斯;韦恩;猫女”。还有“彼得;帕克;玛丽简”来称呼每一排蜘蛛侠。在

最终结果应该是一个包含5列(系列)和6行的数据帧。在


Tags: 数据name标记pandas电子序列姓名博士
1条回答
网友
1楼 · 发布于 2024-06-14 17:31:40

这是一个经典的内部连接场景。在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

相关问题 更多 >