删除一列等于另一列的重复行
remove duplicate rows where one column equals a different column
我有一个这样的 df:
d = {'label':['A','B','G','O']
,'label2':['C','D','O','Z']}
df = pd.DataFrame(d)
print(df)
label label2
0 A C
1 B D
2 G O
3 O Z
我想做的是去掉 label = label2 的重复行(只保留第一行)
所以我想从上面的 df:
得到这样的东西
label label2
0 A C
1 B D
2 G O
我在下面做了这个,但没有成功
df[~df[['label', 'label2']].apply(frozenset, axis=1).duplicated()]
知道如何解决这个问题吗?
试试这个,对 Seires 使用 .isin
方法:
mask = ~df['label'].isin(df['label2'])
df_output = df[mask]
print(df_output)
输出:
label label2
0 A C
1 B D
2 G O
您可以使用 drop
删除两列之间的重复标签:
df.drop(df[df['label'].isin(df['label2'])].index, inplace=True)
print(df)
# Output:
label label2
0 A C
1 B D
2 G O
我有一个这样的 df:
d = {'label':['A','B','G','O']
,'label2':['C','D','O','Z']}
df = pd.DataFrame(d)
print(df)
label label2
0 A C
1 B D
2 G O
3 O Z
我想做的是去掉 label = label2 的重复行(只保留第一行) 所以我想从上面的 df:
得到这样的东西 label label2
0 A C
1 B D
2 G O
我在下面做了这个,但没有成功
df[~df[['label', 'label2']].apply(frozenset, axis=1).duplicated()]
知道如何解决这个问题吗?
试试这个,对 Seires 使用 .isin
方法:
mask = ~df['label'].isin(df['label2'])
df_output = df[mask]
print(df_output)
输出:
label label2
0 A C
1 B D
2 G O
您可以使用 drop
删除两列之间的重复标签:
df.drop(df[df['label'].isin(df['label2'])].index, inplace=True)
print(df)
# Output:
label label2
0 A C
1 B D
2 G O