繁体   English   中英

Pandas:drop_duplicates()基于python中的条件

[英]Pandas:drop_duplicates() based on condition in python

低于数据集:

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

您可以根据'A''B'创建第三列'C' ,并使用它来查找重复项:

df['C'] = df['A'] + df['B']
df['C'] = df['C'].apply(lambda x: ''.join(sorted(x)))
df = df.drop_duplicates(subset='C')[['A', 'B']]

您可以使用duplicatednp.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM