Объединение ячеек по условию с помощью pandas python3

Помогите пожалуйста в решении проблемы. Существует таблица примерно такого вида:

clmn1 clmn2 clmn3
11111 ooooo 11
11111 ppppp 11
22222 nnnnn 22
33333 hhhhh 33
33333 jjjjj 33
33333 bbbbb 33

Должно получиться:

clmn1 clmn2 clmn3
11111 oooooppppp 11
22222 nnnnn 22
33333 hhhhhjjjjjbbbbb 33

Программа должна по уникальным id из первого столбца сложить текст из второго столбца.


Ответы (2 шт):

Автор решения: CrazyElf
import pandas as pd

s = '''
11111   ooooo
11111   ppppp
22222   nnnnn
33333   hhhhh
33333   jjjjj
33333   bbbbb'''

df = pd.DataFrame({'clmn1': s.split()[::2], 'clmn2': s.split()[1::2]})

df1 = df.groupby('clmn1').sum().reset_index()

Содержимое df1:

    clmn1   clmn2
0   11111   oooooppppp
1   22222   nnnnn
2   33333   hhhhhjjjjjbbbbb

Про третий столбец только теперь увидел, но, кажется, его можно добавить в группировку, либо присоединить потом через merge, и ничего особо не поменяется.

→ Ссылка
Автор решения: strawdog
res = df.groupby("clmn1").agg({"clmn2":"sum","clmn3":"first"}).reset_index()

res:

   clmn1            clmn2  clmn3
0  11111       oooooppppp     11
1  22222            nnnnn     22
2  33333  hhhhhjjjjjbbbbb     33
→ Ссылка