pandas - 根据列值删除数据框中的重复行

pandas - drop duplicate rows in a dataframe based on a column value

我有一个这样的df:

>>> df1

        col_1   col_2    size_col  other_col
0        aaa     abc       4          zxc
1        aaa     abc       3          xcv
2        aaa     abc       1          cvb
3        bbb     bbc       7          vbn
4        bbb     bbc       3          bnm
5        ccc     cbc       1          asd
6        ddd     dbc       9          sdf
7        ccc     cbc       3          dfg
8        ccc     cbc       1          fgh

想要这样的 df:

>>> df2

        col_1   col_2    size_col  other_col
0        aaa     abc       4          zxc
3        bbb     bbc       7          vbn
6        ddd     dbc       9          sdf
7        ccc     cbc       3          dfg

解释:
我想全部删除 col_1col_2 具有相似值的位置,并保留 'size_col' 对于所有重复组最大的行。因此,从上面的示例中,对于 col_1col_2 具有 aaaabc 的行,我需要保留 size_col 具有最大值的行.或者换句话说,我需要按 col_1col_2 列进行分组,然后对于每个组,只保留 other_col 对组具有最大值的行。

如何为大约 500 万行和 7 列的 df 高效地执行此操作?

使用:

df1.loc[df1.groupby(['col_1', 'col_2'])['size_col'].idxmax()]