分组后折叠数据框熊猫

时间:2018-10-15 07:34:15

标签: python pandas

假设我具有以下数据框:

    between_count            name1            name2  \
0              1     Jacubo Hakym  Johannem Haxixe   
1              2  Johannem Haxixe          Antonio   
2              4          Antonio  Johannem Haxixe   
3              8  Johannem Haxixe     Jacubo Hakym   
4             13     Jacubo Hakym  Johannem Haxixe   
5             24  Johannem Haxixe           Domine   
6             44           Domine  Johannem Haxixe   
7             20  Johannem Haxixe  Johannem Haxixe   
8             48  Johannem Haxixe  Johannem Haxixe   

                                               words  
0                          contra Pro Coram magistro  
1                Coram magistro contra Axac testibus  
2  Axac testibus Testamur quod Coram magistro hab...  
3  habitator Rabatj Melite Jn accomandita dederat...  
4  duas taceas de argento Hodie supratitulato pre...  
5  presenti unam taceam ex dictis duabus taceis e...  
6  speravi Jn te’ et nomine vendicionis dimisit p...  
7  venditor confessus est se recepisse at habuiss...  
8  venditor transtulit et mandavit Jn eumdem magi...  

我希望以此方式按名称1和名称2分组:

cp = candidate_pairs.groupby(['name1','name2'], as_index=False).apply(func)

但是同时添加分组项目的between_count并将单词附加到一个弓上。

因此,记录0和4将变为: between_count name1 name2个单词 14 Jacubo Hakym Johannem Haxixe与Pro Coram magistro duas taceas de argento Hodie supratitulato pre ...

是否有一种简单的方法,而不是通过添加between_count的值并附加单词并删除不需要的行来手动完成?谢谢

1 个答案:

答案 0 :(得分:1)

我相信您需要通过sumjoinDataFrameGroupBy.agg进行聚合:

d = {'between_count':'sum', 'words':' '.join}
cp = candidate_pairs.groupby(['name1','name2'], as_index=False).agg(d)
print (cp)
             name1            name2  between_count  \
0          Antonio  Johannem Haxixe              4   
1           Domine  Johannem Haxixe             44   
2     Jacubo Hakym  Johannem Haxixe             14   
3  Johannem Haxixe          Antonio              2   
4  Johannem Haxixe           Domine             24   
5  Johannem Haxixe     Jacubo Hakym              8   
6  Johannem Haxixe  Johannem Haxixe             68   

                                               words  
0     Axac testibus Testamur quod Coram magistro hab  
1     speravi Jn te’ et nomine vendicionis dimisit p  
2  contra Pro Coram magistro duas taceas de argen...  
3                Coram magistro contra Axac testibus  
4     presenti unam taceam ex dictis duabus taceis e  
5     habitator Rabatj Melite Jn accomandita dederat  
6  venditor confessus est se recepisse at habuiss...