如果某些索引值相同,我想按索引对数据框进行排序,然后按字母顺序进行排序。
df = pd.DataFrame()
df['values'] = ['d', 'c', 'b', 'a']
df['index'] = [2, 0, 1, 0]
df = df.set_index('index')
df.sort_index(inplace=True)
哪个输出
values
index
0 c
0 a
1 b
2 d
但是,我期望:
values
index
0 a
0 c
1 b
2 d
有什么办法可以一致地实现这一目标吗?谢谢你。
根据官方文档,您可以将索引名称传递给sort_values
:
df.sort_values(['index','values'])
输出:
values
index
0 a
0 c
1 b
2 d
有趣:您还可以按值排序,然后使用稳定的算法再次按索引排序:
df.sort_values('values').sort_index(kind='mergesort')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句