按datafram重新排序Pandas

2024-09-28 01:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pandas中有以下groupby数据帧

Crop            Region   
maize_1         Temperate    30.0
                Tropical     46.0
maize_2         Tropical     77.5
                Temperate    13.5
soybean_1       Temperate    18.5
                Tropical     35.0

我怎样才能在“地区”一栏中对其进行排序,使其处于热带之前?在

--编辑:预期答案为

^{pr2}$

Tags: 数据答案crop编辑pandas排序region地区
2条回答

签出sortleveldocs)或sort_indexdocs)。

df.sortlevel(level=[0, 1])

以及

^{pr2}$

两种输出

Crop       Region   
maize_1    Temperate      30
           Tropical     46.0
maize_2    Temperate    13.5
           Tropical     77.5
soybean_1  Temperate    18.5
           Tropical     35.0

设置

idx = pd.MultiIndex.from_tuples([('maize_1', 'Temperate'), ('maize_1', 'Tropical'),
                                 ('maize_2', 'Tropical'), ('maize_2', 'Temperate'),
                                 ('soybean_1', 'Temperate'), ('soybean_1', 'Tropical')],
                               names=['Crop', 'Region'])
s = pd.Series([30., 46., 77.5, 13.5, 18.5, 34.], idx)

s

Crop       Region   
maize_1    Temperate    30.0
           Tropical     46.0
maize_2    Tropical     77.5
           Temperate    13.5
soybean_1  Temperate    18.5
           Tropical     34.0
dtype: float64

解决方案

IIUC您想按'Region'排序,而不使用{}。

^{pr2}$

您也可以按原样对索引排序,但它也将排序'Crop'。碰巧你的'Crop'已经按顺序排列好了。但如果不是这样的话,这个解决方案将保留这一点。

相关问题 更多 >

    热门问题