首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于pd.dataframe.reset_index()中的drop=True的问题

关于pd.dataframe.reset_index()中的drop=True的问题
EN

Stack Overflow用户
提问于 2019-04-18 21:21:35
回答 1查看 2K关注 0票数 2

在Pandas数据帧中,可以使用reset_index()方法重置索引。一个可选参数是drop=True,根据文档:

代码语言:javascript
复制
drop : bool, default False
    Do not try to insert index into dataframe columns. 
    This resets the index to the default integer index.

我的问题是,第一句话是什么意思?如果我保留if False,它会尝试在df中将整数索引转换为新列吗?

另外,我的行顺序是否会被保留,或者我是否也应该排序以确保正确的排序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 21:33:43

正如您在下面看到的,df.reset_index()会将索引作为列移动到数据帧中。如果索引只是一个通用的数字索引,您可能并不关心它,可以直接丢弃它。下面是一个简单的数据帧,但我删除了第一行,只是为了在索引中有不同的值。

代码语言:javascript
复制
df = pd.DataFrame([['a', 10], ['b', 20], ['c', 30], ['d', 40]], columns=['letter','number'])
df = df[df.number > 10]
print(df)
#   letter  number
# 1      b      20
# 2      c      30
# 3      d      40

默认行为现在显示一个名为index的列,该列是以前的索引。您可以看到df['index']与上面的索引匹配,但是索引已经从0开始重新编号。

代码语言:javascript
复制
print(df.reset_index())
#    index letter  number
# 0      1      b      20
# 1      2      c      30
# 2      3      d      40

drop=True并没有假装索引很重要,只是给了你一个新的索引。

代码语言:javascript
复制
print(df.reset_index(drop=True))
#   letter  number
# 0      b      20
# 1      c      30
# 2      d      40

关于行顺序,我怀疑它会被维护,但通常不应该依赖于存储事物的顺序。如果您正在执行聚合函数,则可能需要确保为聚合而对数据进行正确排序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55746957

复制
相关文章

相似问题

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