[英]Group by dataframe in python and concat strings on multiple columns
我有 dataframe 如下所示
A,B,C,D
91102,1,john,
91102,2,john,
91102,3,john,
91102,1,,mary
91102,2,,mary
91102,3,,mary
91103,1,sarah,
91103,2,sarah,
91103,3,sarah,
91103,1,,khan
91103,2,,khan
91103,3,,khan
我想要 groupby A 列和 B 列,并希望得到所需的 output 如下所示
A,B,C,D
91102,1,john,mary
91102,2,john,mary
91102,3,john,mary
91103,1,sarah,khan
91103,2,sarah,khan
91103,3,sarah,khan
我在下面尝试但没有给出想要的 output
df=df.groupby(['A', 'B'], as_index=False).agg('' .join)
在groupby
中,您可以回填然后取该组的第一行。
df.groupby(['A','B'], as_index=False).apply(lambda x: x.bfill().iloc[0])
结果
A B C D
0 91102 1 john mary
1 91102 2 john mary
2 91102 3 john mary
3 91103 1 sarah khan
4 91103 2 sarah khan
5 91103 3 sarah khan
尝试:
x = df.set_index(["A", "B"]).stack().unstack().reset_index()
print(x)
印刷:
A B C D
0 91102 1 john mary
1 91102 2 john mary
2 91102 3 john mary
3 91103 1 sarah khan
4 91103 2 sarah khan
5 91103 3 sarah khan
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.