2016-07-25 47 views
1

另一列给出一个数据帧的熊猫拥有它的几个标记系列列值的,说名称小人置一组基于在熊猫

假设数据帧具有值,例如:
名称:{ '蝙蝠侠', '蝙蝠侠', '蜘蛛侠', '蜘蛛侠', '蜘蛛侠', '蜘蛛'}
小人:{” Joker','Bane','Green Goblin','Electro','Venom','Octopus博士}

总共上述数据框有2个系列(或列),每个系列有6个数据点。

现在的基础上,名称,我想连接3列:名字,姓氏,LoveInterest到每个数据点。

结果增加了'布鲁斯;韦恩;猫女'到名字为蝙蝠侠的每一排。和'彼得;帕克; MaryJane“的名字称为蜘蛛侠。

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

+0

在大熊猫这就是所谓的'merge' – maxymoo

回答

2

这是一个经典的内连接方案。在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 
+0

如果合并是不是在两列,说姓名和性别,它仍然是相同的合并? – Yaitzme

+0

@Yaitzme这取决于你想要完成什么。阅读文档,特别是如果您不熟悉SQL连接:http://pandas.pydata.org/pandas-docs/stable/merging.html#database-style-dataframe-joining-merging –

+0

完美适合我!谢谢! – Yaitzme