首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于条件的python Pandas:drop_duplicates()

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

Stack Overflow用户
提问于 2016-01-06 06:59:43
回答 2查看 152关注 0票数 4

具有以下数据集:

代码语言:javascript
复制
data_input:

    A     B
1  C13D  C07H
2  C07H  C13D
3  B42C  B65H
4  B65H  B42C
5  A45B  A47C

也就是说,data_input中的第1行和第2行是相同的,我只想保留一个,所以删除第2行。

希望输出如下所示:

代码语言:javascript
复制
data_output:

    A     B
1  C13D  C07H
2  B42C  B65H
3  A45B  A47C
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-06 07:14:30

您可以基于'C''A'创建第三列'B',并使用它查找副本:

代码语言:javascript
复制
df['C'] = df['A'] + df['B']
df['C'] = df['C'].apply(lambda x: ''.join(sorted(x)))
df = df.drop_duplicates(subset='C')[['A', 'B']]
票数 7
EN

Stack Overflow用户

发布于 2017-10-12 15:53:14

你可以用duplicatednp.sort

代码语言:javascript
复制
In [1279]: df[~df.apply(np.sort, axis=1).duplicated()]
Out[1279]:
      A     B
1  C13D  C07H
3  B42C  B65H
5  A45B  A47C

详细信息

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34627380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档