pandas分组聚合报SpecificationError: nested renamer is not supported如何修复?
错误原因
你使用了pandas早期版本支持的嵌套字典聚合重命名语法,该特性在pandas 0.20版本开始废弃,1.0及以上版本直接抛出SpecificationError: nested renamer is not supported错误。
修复方案
替换原有嵌套字典的agg传参写法,采用pandas现行支持的聚合重命名语法即可,修复后的完整代码如下:
import pandas as pd # Aggregate by Type and Gender df_grouped_start = df_total.groupby( ['Start Date', 'Start Station Name', 'Start Station Latitude','Start Station Longitude'] ).agg( # 支持带特殊字符、空格的新列名写法 **{ 'Trip Duration Mean (s)': pd.NamedAgg(column='Trip Duration', aggfunc='mean'), 'Total Rides': pd.NamedAgg(column='Bike ID', aggfunc='count') } ) # 无需再手动删除列层级,聚合结果直接为单层列名 # 导出 dataframe 到 csv 文件 df_grouped_start.to_csv('data_output/start_date.csv')
如果新列名没有空格、特殊符号,也可以用简化写法:
df_grouped_start = df_total.groupby( ['Start Date', 'Start Station Name', 'Start Station Latitude','Start Station Longitude'] ).agg( trip_duration_mean_s=('Trip Duration', 'mean'), total_rides=('Bike ID', 'count') )
内容的提问来源于stack exchange,提问作者Renzo
相关产品推荐
相关产品推荐

