如何按两个字段分组并将索引设置为两个字段之一.大熊猫,蟒蛇-3



我是Stack Overflow的新手,因此也欢迎任何社区最佳实践。

#aggregate rides and average of fares
combo_grouped_df =combo_df.groupby(['city','type'])
#combo_grouped_df.set_index('city') does not work! 
combo_grouped_df.head()
avg_fare =combo_grouped_df['fare'].mean()
total_rides =combo_grouped_df['ride_id'].count()
city_type = combo_grouped_df['type']
summary_df = pd.DataFrame({"Average Fare": avg_fare,
"Number of Rides": total_rides,
"Type": combo_grouped_df['type']}) # how to get type in this dict?????
summary_df.head()}

结果:

Average Fare  Number of Rides  
city          type                                      
Amandaburgh   Urban        24.641667               18   
Barajasview   Urban        25.332273               22   
Barronchester Suburban     36.422500               16   
Bethanyland   Suburban     32.956111               18   
Bradshawfurt  Rural        40.064000               10   
Type  
city          type                                                         
Amandaburgh   Urban     ((Amandaburgh, Urban), [Urban, Urban, Urban, U...  
Barajasview   Urban     ((Barajasview, Urban), [Urban, Urban, Urban, U...  
Barronchester Suburban  ((Barronchester, Suburban), [Suburban, Suburba...  
Bethanyland   Suburban  ((Bethanyland, Suburban), [Suburban, Suburban,...  
Bradshawfurt  Rural     ((Bradshawfurt, Rural), [Rural, Rural, Rural, ... 

我想将goupby"type"索引移动到"type"所在的列。或者让"type"显示为不带括号的单个字符串(例如"Urban"(。

df.set_index = False不起作用,因为我想保留"城市"索引。群策群力似乎也不起作用。如有任何帮助,我们将不胜感激。

为了清晰起见,请编辑:我希望按"城市"分组并将其用作索引。我希望在数据帧中有"type",而不是在索引中。当前"Type"返回的值列表本质上是重复的相同值。

您只需要:

import pandas as pd
# Group it
group_df = combo_df.groupby(['city','type'])
# Aggregate it
aggregated_df = group_df.agg({'fare': 'mean', 'ride_id': 'count'})
# Reset index (only type)
summary_df = aggregated_df.reset_index(level=1) 

最新更新