Pandas 当其他列中的值相同时删除重复项
Pandas drop duplicates when values in other columns are same
我有以下数据框 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
仅当 Col1
和 Col2
相同时,我想删除基于列 Val
的重复行。
我正在尝试使用以下 df.drop_duplicates(subset='Val', keep='first')
但无法在 Col1
和 Col2
.
上添加条件
我不确定如何处理上述问题。
我们可以检查 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
我有以下数据框 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
仅当 Col1
和 Col2
相同时,我想删除基于列 Val
的重复行。
我正在尝试使用以下 df.drop_duplicates(subset='Val', keep='first')
但无法在 Col1
和 Col2
.
我不确定如何处理上述问题。
我们可以检查 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