如何基于条件筛选字典数据并计算指定字段的平均值?
筛选指定分组数据并计算统计值
需求场景
从CSV读取的字典数据中(示例如下),筛选出country为United Kingdom的用户,计算其grade的平均值、最大值、最小值。实际场景可类比为筛选特定动物(如猫)的年龄、价格等统计值。
示例字典
example_dictionary = { 'name': ['Tim', 'Frank', 'Pete', 'Sam', 'Lauren', 'Darren', 'Michael'], 'country': ['Netherlands', 'United Kingdom', 'United Kingdom', 'United Kingdom', 'United Kingdom', 'United Kingdom', 'Netherlands'], 'grade': [6.7, 7.6, 6.4, 6.8, 7.7, 8.6, 9.0] }
平均值计算实现
# 筛选符合条件的grade数据 uk_grades = [grade for country, grade in zip(example_dictionary['country'], example_dictionary['grade']) if country == 'United Kingdom'] # 计算并输出平均值(处理空数据情况) if uk_grades: average_grade = sum(uk_grades) / len(uk_grades) print(f"英国用户的平均成绩: {average_grade:.2f}") else: print("无符合条件的数据")
扩展说明
- 计算最大值:直接使用
max(uk_grades)(需确保列表非空) - 计算最小值:直接使用
min(uk_grades)(需确保列表非空) - 实际处理大型数据时,该逻辑同样适用,仅需替换对应的筛选字段(如
animal_type == '猫')和统计字段(如age/price)即可。
内容的提问来源于stack exchange,提问作者Remco
相关产品推荐
相关产品推荐

