簡體   English   中英

按 python 中的 dataframe 分組,並在多列上連接字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM