Группировка панд по функции агрегации - удаление заголовков верхнего уровня

1

Я использовал следующий словарь агрегации:

fare_agg = {
    'Fare_amount': {
        'mean_fare_amount':'mean',
        'meadian_fare_amount': 'median'
    },
    'Total_amount':{
        'mean_total_amount':'mean',
        'median_total_amount':'median'
    },
    'Trip_distance':{
        'mean_trip_distance':'mean',
        'median_trip_distance':'median'
    }
}

df_g = df_a.groupby('type').agg(fare_agg)

Когда я сохраняю данные в csv, он имеет два заголовка уровня. Я попытался удалить df_a.columns = df_a.columns.droplevel(0) но это не сработало. Затем попытался reset_index(inplace=True) но это также не сработало. Какой трюк получить только заголовок второго уровня.

Вот как выглядит заголовок csv:

type,Trip_distance,Trip_distance,Fare_amount,Fare_amount,Total_amount,Total_amount
,mean_trip_distance,median_trip_distance,mean_fare_amount,meadian_fare_amount,median_total_amount,mean_total_amount
Теги:
pandas

1 ответ

0

Это должно делать то, что вы хотите:

df_g.columns = df_g.columns.droplevel(-1)

Пример:

df = pd.DataFrame({'type':['a','a','b','b'],'Fare_amount':[2,5,3,4],
                   'Total_amount':[2,3,4,1],'Trip_distance' :[2,2,4,4]})

df_g = df.groupby('type').agg(fare_agg)
df_g.columns = df_g.columns.droplevel(-1)

print(df_g)
         Fare_amount  Fare_amount  Total_amount  Total_amount  Trip_distance  \
type                                                                        
a             3.5          3.5           2.5           2.5              2   
b             3.5          3.5           2.5           2.5              4   

            Trip_distance  
type                 
a                 2  
b                 4  

Ещё вопросы

Сообщество Overcoder
Наверх
Меню