假设我具有以下数据框:
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的值并附加单词并删除不需要的行来手动完成?谢谢
答案 0 :(得分:1)
我相信您需要通过sum
和join
和DataFrameGroupBy.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...