3 回答
TA贡献1811条经验 获得超5个赞
使用假设0是第一列并且1是第二列。如果第一列是索引替换0为df.index
m=df.groupby(0)[1].apply(list)
print(pd.DataFrame(m.values.tolist(),index=m.index).rename_axis(None).fillna(''))
0 1 2 3 4
1 A B B C A
2 D A D C
3 A B A
4 D A C B A
TA贡献1802条经验 获得超6个赞
是pandas的可以做到:
import pandas as pd
# Create dataframe (or import it)
df = pd.DataFrame({"id": [1, 1, 1, 2, 2, 3, 1, 4], "letter" : ["A", "A", "B", "D", "A", "C", "B", "B"]})
print(df)
结果:
id letter
0 1 A
1 1 A
2 1 B
3 2 D
4 2 A
5 3 C
6 1 B
7 4 B
然后:
df.groupby("id").sum()
print(df)
结果:
id letter
1 AABB
2 DA
3 C
4 B
TA贡献2011条经验 获得超2个赞
您可以使用:
df.groupby('id').sum()['letter'].apply(lambda x: ' '.join(x))
id
1 A B B C A
2 D A D C
3 A B A
4 D A C B A
添加回答
举报