拥有以下数据集:
data_input:
A B
1 C13D C07H
2 C07H C13D
3 B42C B65H
4 B65H B42C
5 A45B A47C
即。 data_input
中的第1行和第2行是相同的,我只想保留一个,所以删除第2行。
想要输出如下:
data_output:
A B
1 C13D C07H
2 B42C B65H
3 A45B A47C
答案 0 :(得分:7)
您可以根据'C'
和'A'
创建第三列'B'
,并使用它来查找重复项:
df['C'] = df['A'] + df['B']
df['C'] = df['C'].apply(lambda x: ''.join(sorted(x)))
df = df.drop_duplicates(subset='C')[['A', 'B']]
答案 1 :(得分:0)
您可以使用duplicated
和np.sort
In [1279]: df[~df.apply(np.sort, axis=1).duplicated()]
Out[1279]:
A B
1 C13D C07H
3 B42C B65H
5 A45B A47C
详细
In [1281]: df.apply(np.sort, axis=1)
Out[1281]:
A B
1 C07H C13D
2 C07H C13D
3 B42C B65H
4 B42C B65H
5 A45B A47C
In [1282]: df.apply(np.sort, axis=1).duplicated()
Out[1282]:
1 False
2 True
3 False
4 True
5 False
dtype: bool