Предполагая, что у меня есть следующий Dataframe:
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 и name2 таким образом:
cp = candidate_pairs.groupby(['name1','name2'], as_index=False).apply(func)
Но в то же время добавьте between_count сгруппированных предметов и добавьте слова в один лук.
Поэтому запись 0 и 4 станет: between_count name1 name2 words 14 Jacubo Hakym Johannem Haxixe contra Pro Coram magistro duas taceas de argento Hodie supratitulato pre...
Есть ли простой способ сделать это, а не делать это вручную с добавлением значений between_count и добавления слов и удаления нежелательных строк? Спасибо
Я считаю, что вам нужно aggreagte по 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...