我想对以下数据框进行排序:
Region LSE North South
0 Cn 33.330367 9.178917
1 Develd -36.157025 -27.669988
2 Wetnds -38.480206 -46.089908
3 Oands -47.986764 -32.324991
4 Otherg 323.209834 28.486310
5 Soys 34.936147 4.072872
6 Wht 0.983977 -14.972555
Run Code Online (Sandbox Code Playgroud)
我想对它进行排序,以便根据列表重新排序LSE列:
lst = ['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht']
Run Code Online (Sandbox Code Playgroud)
当然,其他列也需要相应地重新排序.在熊猫中有没有办法做到这一点?
Mar*_*ius 14
对Categorical熊猫版本0.15中的s 的改进支持允许您轻松地执行此操作:
df['LSE_cat'] = pd.Categorical(
df['LSE'],
categories=['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht'],
ordered=True
)
df.sort('LSE_cat')
Out[5]:
Region LSE North South LSE_cat
3 3 Oands -47.986764 -32.324991 Oands
2 2 Wetnds -38.480206 -46.089908 Wetnds
1 1 Develd -36.157025 -27.669988 Develd
0 0 Cn 33.330367 9.178917 Cn
5 5 Soys 34.936147 4.072872 Soys
4 4 Otherg 323.209834 28.486310 Otherg
6 6 Wht 0.983977 -14.972555 Wht
Run Code Online (Sandbox Code Playgroud)
如果这只是一个临时排序,那么保持LSE列Categorical可能不是你想要的,但是如果这个排序是你希望能够在不同的上下文中使用几次,那么这Categoricals是一个很好的解决方案.
在以后的版本中pandas,sort已被替换sort_values,所以你需要改为:
df.sort_values('LSE_cat')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7842 次 |
| 最近记录: |