我有一个带有某些行的df,例如:
1 | FII 4440 | Faria Lima | 14° | Cascione, Pulino, Boulos
1 | FII 4440 | Faria Lima | 15° | Warrant
1 | FII 4440 | Faria Lima | 16° | Warrant
2 | Malls | São Paulo | N | None
3 | Malls | Cidade Jardim | N | None
我需要输出像:
1 | FII 4440 | Faria Lima | 14º, 15º, 16° | Cascione, Pulino, Boulos, Warrant
2 | Malls | São Paulo | N | None
3 | Malls | Cidade Jardim | N | None
也就是说,对于相同的索引(第一列),它应将字符串连接起来,且各列没有重复。有人可以帮我吗?
答案 0 :(得分:0)
您可以这样做:
df1 = df.groupby([0, 1, 2])[4].apply(','.join).reset_index()
df2 = df.groupby([0, 1, 2])[3].apply(','.join).reset_index()
df = df1.merge(df2)
print(df)
0 1 2 4 3
0 1 FII4440 FariaLima Cascione,Pulino,Boulos,Warrant,Warrant 14°,15°,16°
1 2 Malls SãoPaulo None N
2 3 Malls CidadeJardim None N
答案 1 :(得分:0)
我注意到分组条件只能是最左边的列。
假设列名称为 C0 , C1 ,...,请尝试:
df.groupby('C0').agg(lambda grp: ', '.join(grp.unique())).reset_index()