Reorder pandas groupby dataframe

user308827

I have the following groupby dataframe in pandas

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

How can I sort it so that in the 'Region' Column, Temperate preceedes Tropical?

-- EDIT: expected answer is

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

Setup

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

Solution

IIUC you want to sort by 'Region' and leave 'Crop' alone.

s.unstack().sort_index(1).stack()

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

You can also, sort the index as is but it will also sort 'Crop'. It so happens your 'Crop's are already in order. But if they weren't, this solution would preserve that.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Reorder pandas groupby dataframe

From Dev

Reorder pandas DataFrame with specific rules

From Dev

Reorder levels of MultiIndex in a pandas DataFrame

From Dev

Reorder pandas DataFrame with specific rules

From Dev

How to split dataframe or reorder dataframe by rows in pandas

From Dev

How to reorder values across columns in a pandas DataFrame?

From Dev

reorder subset of rows in pandas dataframe (reindex)

From Dev

How to reorder/sort dataframe indexes with Pandas?

From Dev

pandas dataframe won't reorder columns

From Dev

pandas dataframe groupby summation

From Dev

pandas, dataframe, groupby, std

From Dev

groupby - python pandas dataframe

From Dev

Pandas Groupby back to DataFrame

From Dev

groupby week - pandas dataframe

From Dev

Pandas Dataframe groupby Display

From Dev

pandas dataframe groupby summation

From Dev

Reorder and select subset from dataframe based on other dataframe pandas

From Dev

Split pandas dataframe based on groupby

From Dev

Groupby value counts on the dataframe pandas

From Dev

Filter Pandas DataFrame by GroupBy Contents

From Java

pandas dataframe groupby datetime month

From Dev

pandas add column to groupby dataframe

From Dev

Pandas - Groupby and create new DataFrame?

From Dev

Pandas Percentage count on a DataFrame groupby

From Dev

pandas DataFrame.groupby with a tolerance

From Dev

Pandas - return a dataframe after groupby

From Dev

Groupby value counts on the dataframe pandas

From Dev

Pandas dataframe groupby remove column

From Dev

Pandas dataframe groupby function usage