字符索引Pandas Series按非空格分组求单词对应值均值的实现问题
基于Pandas实现按索引单词分组求均值的方案
实现逻辑
- 先识别索引中的空格分隔符,为每一段连续的非空格字符分配同一个分组编号
- 过滤掉空格对应的行之后按分组编号聚合:拼接索引得到完整单词,同时计算分组内数值的均值
完整代码示例
import pandas as pd # 构造原始示例Series char_index = list('buffalo bills ranch') value_list = [0.240322, 0.279720, 0.329494, 0.359549, 0.371886, 0.378648, 0.379713, 0.352408, 0.350311, 0.322337, 0.290646, 0.265696, 0.249698, 0.224883, 0.228836, 0.239643, 0.247804, 0.243472, 0.257716] s = pd.Series(value_list, index=char_index) # 核心处理逻辑 is_space_mask = s.index == ' ' group_number = is_space_mask.cumsum() # 过滤空格行后分组聚合 res = s[~is_space_mask].groupby(group_number[~is_space_mask]).agg( 单词=lambda x: ''.join(x.index), 均值=lambda x: round(x.mean(), 3) ).set_index('单词')['均值'] # 输出结果 print(res)
输出结果
单词 buffalo 0.334 bills 0.296 ranch 0.243 Name: 均值, dtype: float64
内容的提问来源于stack exchange,提问作者Cullen Baker
相关产品推荐
相关产品推荐

