首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大熊猫drop_duplicates法DataFrame中重复指数的考虑

大熊猫drop_duplicates法DataFrame中重复指数的考虑
EN

Stack Overflow用户
提问于 2018-08-30 20:51:23
回答 2查看 6K关注 0票数 6

Pandas的drop_duplicates方法考虑删除重复行时的所有列(默认)或列子集(可选),并且不能考虑重复索引。

我正在寻找一个干净的单行解决方案,在确定重复行时考虑索引和子集或所有列。例如,考虑一下DataFrame

代码语言:javascript
运行
复制
df = pd.DataFrame(index=['a', 'b', 'b', 'c'], data={'A': [0, 0, 0, 0], 'B': [1, 0, 0, 0]})
   A  B
a  0  1
b  0  0
b  0  0
c  0  0

默认使用drop_duplicates方法

代码语言:javascript
运行
复制
df.drop_duplicates()
   A  B
a  0  1
b  0  0

如果在确定重复行时也考虑了索引,则结果应该是

代码语言:javascript
运行
复制
df.drop_duplicates(consider_index=True) # not a supported keyword argument
   A  B
a  0  1
b  0  0
c  0  0

是否有一种提供此功能的方法比我目前的方法更好:

代码语言:javascript
运行
复制
df['index'] = df.index
df.drop_duplicates(inplace=True)
del df['index']
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-30 20:53:17

调用reset_indexduplicated,然后索引原始的:

代码语言:javascript
运行
复制
df = df[~df.reset_index().duplicated().values]
print (df)
   A  B
a  0  1
b  0  0
c  0  0
票数 9
EN

Stack Overflow用户

发布于 2018-08-30 20:54:02

试试这个:

代码语言:javascript
运行
复制
df.reset_index().drop_duplicates().set_index('[name_of_your_index_here]')

输出

代码语言:javascript
运行
复制
       A  B
index      
a      0  1
b      0  0
c      0  0
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52105181

复制
相关文章

相似问题

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