Я использовал следующий словарь агрегации:
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
Это должно делать то, что вы хотите:
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