如何根据 Pandas 数据框中的两个或多个子集标准删除重复项
- 2025-03-11 08:54:00
- admin 原创
- 57
问题描述:
可以说这是我的数据框
df = pd.DataFrame({ 'bio' : ['1', '1', '1', '4'],
'center' : ['one', 'one', 'two', 'three'],
'outcome' : ['f','t','f','f'] })
看起来像这样...
bio center outcome
0 1 one f
1 1 one t
2 1 two f
3 4 three f
我想删除第 1 行,因为它具有与第 0 行相同的简历和中心。我想保留第 2 行,因为它具有与第 0 行相同的简历但中心不同。
基于 drop_duplicates 输入结构,这样的事情不会起作用,但这就是我正在尝试做的
df.drop_duplicates(subset = 'bio' & subset = 'center' )
有什么建议吗?
编辑:稍微改变了 df 以适合正确答案的示例
解决方案 1:
你的语法错误。以下是正确的方法:
df.drop_duplicates(subset=['bio', 'center', 'outcome'])
或者在这个特定的情况下,只需简单:
df.drop_duplicates()
两者都返回以下内容:
bio center outcome
0 1 one f
2 1 two f
3 4 three f
查看df.drop_duplicates
文档了解语法细节。subset
应该是一系列列标签。
解决方案 2:
前面的答案很有帮助。它帮助了我。我还需要在代码中添加一些内容才能得到我想要的东西。所以,我想在这里补充一下。
数据框:
bio center outcome
0 1 one f
1 1 one t
2 1 two f
3 4 three f
实施后drop_duplicates
:
bio center outcome
0 1 one f
2 1 two f
3 4 three f
注意索引。它们搞乱了。如果有人想返回正常索引,即0, 1, 2
来自0, 2, 3
:
df.drop_duplicates(subset=['bio', 'center', 'outcome'], ignore_index=True)
输出:
bio center outcome
0 1 one f
1 1 two f
2 4 three f
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD