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

Python 关于pd.dataframe.reset_index()中drop=True的问题,python,pandas,Python,Pandas,在数据帧中,可以使用reset\u index()方法重置索引。一个可选参数是drop=True,根据文档: 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中的新列吗 另外,我的

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

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中的新列吗


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

正如您在下面看到的,
df.reset\u index()
将索引作为列移动到数据帧中。如果该索引只是一个通用的数字索引,那么您可能不关心它,只需丢弃它即可。下面是一个简单的数据帧,但我删除了第一行只是为了在索引中有不同的值

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开始重新编号

print(df.reset_index())
#    index letter  number
# 0      1      b      20
# 1      2      c      30
# 2      3      d      40
drop=True
不会假装索引很重要,只会给你一个新的索引

print(df.reset_index(drop=True))
#   letter  number
# 0      b      20
# 1      c      30
# 2      d      40

关于行顺序,我怀疑它会被保留,但一般来说不应该依赖于事物的存储顺序。如果您正在执行聚合函数,您可能希望确保为聚合正确排序数据。

这意味着默认情况下,当前的
索引将作为列插入到
数据框中,是的,将保留行顺序