当存在如下所示的DataFrame时:
import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
如何通过索引对此数据框进行排序,并将索引和列值的每个组合保持不变?
答案 0 :(得分:99)
数据框有一个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())
给我:
A
1 4
29 2
100 1
150 5
234 3
答案 1 :(得分:8)
稍微紧凑:
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)
注意:
sort
已弃用,已替换为此方案的sort_index
inplace
,因为它通常更难阅读并防止链接。请参阅答案中的解释:
Pandas: peculiar performance drop for inplace rename after dropna