熊猫排序并保持索引不变

Posted

技术标签:

【中文标题】熊猫排序并保持索引不变【英文标题】:pandas sort and keep index unchanged 【发布时间】:2017-02-13 21:42:19 【问题描述】:

我想按列对数据框进行排序,但遇到问题

df = pd.DataFrame(np.random.random(5))
df.sort(columns = [0],inplace = True)
df

           0
4   0.275867
1   0.304362
2   0.625837
0   0.741176
3   0.767829

当我对列进行排序时,我得到了我不期望的结果,我预计索引应该仍然是 0,1,2,3,4,那么我怎样才能得到这个结果并保持列 0 升序顺序。

【问题讨论】:

嗯,如果数据排序,索引是变化的。但是你可以通过df.reset_index(drop=True, inplace=True)重置它 【参考方案1】:

我认为你需要reset_index 和参数drop=True

np.random.seed(1)
df = pd.DataFrame(np.random.random(5))
df.sort_values(by=[0],inplace = True)
print (df)
          0
2  0.000114
4  0.146756
3  0.302333
0  0.417022
1  0.720324

df.reset_index(drop=True, inplace=True)
print (df)
          0
0  0.000114
1  0.146756
2  0.302333
3  0.417022
4  0.720324

【讨论】:

以上是关于熊猫排序并保持索引不变的主要内容,如果未能解决你的问题,请参考以下文章

如何按索引级别和值对分组的多索引熊猫系列进行排序?

根据字符串+数字的索引对熊猫数据框进行排序

Rails:使范围数据从索引到显示页面保持不变

如何按字符串索引上的自定义顺序对熊猫数据框进行排序

如何在没有持久索引损坏/重复的情况下使用 beginMoveRows 进行排序?

如何通过在两行之间划分特定列中的值并保持其他列不变来在熊猫数据框中创建新行?