两列数据分组

时间:2020-05-11 19:31:50

标签: pandas

我有一个看起来像这样的数据框:

Origional Data

我想将数据框重新组合为:

New Data

我可以使用pd.groupby()或其他方式做到吗?

1 个答案:

答案 0 :(得分:1)

IIUC,np.sortGroupby.sum

print(df)
  col1 col2  col3
0    A    B    10
1    C    D    15
2    B    A    15
3    D    C     3

cols = ['col1', 'col2']
new_df = (df.assign(**dict(zip(cols, np.sort(df[cols], axis=1).T)))
            .groupby(cols, as_index=False).sum())
print(new_df)
  col1 col2  col3
0    A    B    25
1    C    D    18

df2 = df.copy()
df2[cols] = np.sort(df[cols], axis=1)
df2.groupby(cols, as_index=False).sum()