Removing the MultiIndex after grouping
Inevitably, when using groupby
, you will likely create a MultiIndex in the columns or rows or both. DataFrames with MultiIndexes are more difficult to navigate and occasionally have confusing column names as well.
Getting ready
In this recipe, we perform an aggregation with the groupby
method to create a DataFrame with a MultiIndex for the rows and columns and then manipulate it so that the index is a single level and the column names are descriptive.
How to do it...
- Read in the flights dataset; write a statement to find the total and average miles flown; and the maximum and minimum arrival delay for each airline for each weekday:
>>> flights = pd.read_csv('data/flights.csv') >>> airline_info = flights.groupby(['AIRLINE', 'WEEKDAY'])\ .agg({'DIST':['sum', 'mean'], 'ARR_DELAY':['min', 'max']}) \ .astype(int) >>> airline_info.head(7)
- Both the rows...