基于Pandas.Dataframe中的多个列合并多个重复行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Pandas.Dataframe中的多个列合并多个重复行相关的知识,希望对你有一定的参考价值。

我需要根据Dataframe中的多个列来识别重复的行。剩余的列(PKID - 具有整数值)应合并为整数列表。示例:输入数据:(第0行和第1行是重复的,但PKID列除外)

  Col1  PKID   SUBJECT ID
0  A    58305    ABC    X1
1  A    57011    ABC    X1
2  B    12345    XYZ    X1

预期结果 :

  Col1   PKID            SUBJECT ID
0  A    [58305,57011]    ABC    X1
1  B    12345            XYZ    X1

因此,如果除PKID之外的所有列都有重复项,则将所有条目合并为1,PKID值为整数列表。

怎么能实现这一目标?

答案

你需要一个groupby + apply

df.groupby(df.columns.difference(['PKID']).tolist())\
                 .PKID.apply(pd.Series.unique).reset_index()

  Col1  ID SUBJECT            PKID
0    A  X1     ABC  [58305, 57011]
1    B  X1     XYZ         [12345]

以上是关于基于Pandas.Dataframe中的多个列合并多个重复行的主要内容,如果未能解决你的问题,请参考以下文章

合并和填充 Pandas DataFrame

pandas DataFrame:规范化一个 JSON 列并与其他列合并

Pandas Dataframe 合并 2 列,包括条件 If 合并:如果 df_2 中的日期在 df_1 中的其他两个日期之间

如何使用多个布尔条件选择 Pandas DataFrame 中的特定列

合并 Pandas Dataframe:如何添加列和替换值

如何在一个除一列之外的所有列都相同的 Pandas DataFrame 中合并观察结果?