当其他列中的值相同时,熊猫会删除重复项

时间:2021-07-15 16:52:56

标签: pandas python-3.8

我有以下数据框 df

Col1    Col2    Val
T1      L2      1
T1      L2      1
T1      G3      3
G3      G3      4
G3      G3      6
G3      L2      7
L2      L2      8
L2      L2      9

我想得到以下内容:

Col1    Col2    Val
T1      L2      1
T1      L2      1
T1      G3      3
G3      G3      4
G3      L2      7
L2      L2      8

仅当 ValCol1 相同时,我才想根据列 Col2 删除重复行。

我正在尝试使用以下 df.drop_duplicates(subset='Val', keep='first'),但无法在 Col1Col2 上添加条件。

我不知道如何处理上述问题。

1 个答案:

答案 0 :(得分:2)

我们可以检查 Col1 == Col2 和两列重复的行:

df[~(df["Col1"].eq(df["Col2"]) & df.duplicated(subset=["Col1", "Col2"]))]
  Col1 Col2  Val
0   T1   L2    1
1   T1   L2    1
2   T1   G3    3
3   G3   G3    4
5   G3   L2    7
6   L2   L2    8