Объединение ячеек по условию с помощью 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