pandas如何按指定字典分组DataFrame行、求和Numerator并保留Denominator
你的代码存在两处错误:
- 指定了
axis=1,即按列维度分组,无法实现按error_code映射值合并行的需求 - 直接调用sum()会对Denominator列也做累加,不符合保留统一值的要求
实现代码1(更易理解)
# 生成上层错误类型分组键 day1_xione['error_type'] = day1_xione['error_code'].map(map_values) # 按分组键聚合,Numerator求和,Denominator取第一个统一值 grouped = day1_xione.groupby('error_type', as_index=False).agg( Numerator = ('Numerator', 'sum'), Denominator = ('Denominator', 'first') ).rename(columns={'error_type': 'error_code'})
实现代码2(基于你原有写法调整)
grouped = day1_xione.set_index('error_code').groupby(by=map_values).agg( Numerator=('Numerator', 'sum'), Denominator=('Denominator', 'first') ).reset_index(names='error_code')
运行上述代码即可得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者drymolasses
相关产品推荐
相关产品推荐

