分组计算得票最多政党的平均得票率(含同票择优逻辑)
民意调查数据处理任务
原始数据构造代码
import pandas as pd data = pd.DataFrame({'State': ['Texas','Texas','Texas', 'New York','New York', 'Pennsylvania','Pennsylvania','Pennsylvania', 'Pennsylvania'], 'Party': ['REP','REP','DEM', 'DEM','DEM', 'REP','REP','DEM','DEM'], 'Percentage of Vote' : [0.7, 0.6, 0.5, 0.7, .8,.6, .7,.7,.8]}) data
原始数据输出
State Party Percentage of Vote 0 Texas REP 0.7 1 Texas REP 0.6 2 Texas DEM 0.5 3 New York DEM 0.7 4 New York DEM 0.8 5 Pennsylvania REP 0.6 6 Pennsylvania REP 0.7 7 Pennsylvania DEM 0.7 8 Pennsylvania DEM 0.8
处理需求
对每个州执行以下操作:
- 计算并保留得票次数最多的政党的平均得票率;
- 若多个政党得票次数相同,则仅保留平均得票率最高的政党及其对应均值。
期望输出
State Party Percentage of Vote 0 Texas REP 0.65 3 New York DEM 0.75 7 Pennsylvania DEM 0.75
逻辑说明
- 得克萨斯州(Texas):REP得票次数多于DEM,计算REP两次得票率的平均值:(0.7+0.6)/2=0.65;
- 纽约州(New York):DEM得票次数多于REP,计算DEM两次得票率的平均值:(0.7+0.8)/2=0.75;
- 宾夕法尼亚州(Pennsylvania):REP与DEM得票次数相同,但DEM平均得票率(0.75)高于REP(0.65),故保留DEM及其均值。
内容的提问来源于stack exchange,提问作者user603535
相关产品推荐
相关产品推荐

