Python,pandas:如何按索引对数据帧进行排序

mid*_*uru 64 python pandas

当存在如下所示的DataFrame时:

import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
Run Code Online (Sandbox Code Playgroud)

如何通过索引对此数据帧进行排序,并将索引和列值的每个组合保持不变?

Pau*_*l H 110

Dataframes有一个sort_index默认返回副本的方法.通过inplace=True操作到位.

import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())
Run Code Online (Sandbox Code Playgroud)

给我:

     A
1    4
29   2
100  1
150  5
234  3
Run Code Online (Sandbox Code Playgroud)

  • 注意 - 不建议使用“inplace”:https://github.com/pandas-dev/pandas/issues/16529 (2认同)

fan*_*ous 9

稍微紧凑:

df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)
Run Code Online (Sandbox Code Playgroud)

注意:

inplace现在已弃用编辑,sort而是替换此方案.

  • `.sort()`docstring说`DEPRECATED:使用DataFrame.sort_values()` (8认同)