You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas按州与党派排序数据集并计算投票率平均值

用Pandas计算各州党派平均得票率的实现方案

核心思路

不用手动遍历数据集,利用Pandas的数据重塑+分组聚合功能就能高效完成需求,步骤如下:

具体步骤(附代码)

假设你的原始DataFrame结构为:州列是州名,DEM和REP列对应各党派得票率数值(如果原始数据是带%的字符串,需要先转成数值:df['DEM'] = df['DEM'].str.replace('%', '').astype(float),REP列同理)

  1. 将宽表转为窄表
    把DEM、REP列转为党派列,统一结构方便后续分组:
import pandas as pd

# 假设原始数据框名为df
melted_df = df.melt(id_vars='州', var_name='党派', value_name='得票率')
  1. 按州+党派分组求平均
    用groupby自动聚合计算每组的平均值:
avg_result = melted_df.groupby(['州', '党派'])['得票率'].mean().reset_index()
  1. 格式化输出为指定样式
    将结果按要求的格式打印或保存:
for _, row in avg_result.iterrows():
    # 若需整数百分比用int(row['得票率']),保留一位小数则用row['得票率']:.1f
    print(f"{row['州']} | {row['党派']} | {int(row['得票率'])}%")

输出示例

运行后会得到:

新罕布什尔州 | DEM | 55%
新罕布什尔州 | REP | 45%
缅因州 | DEM | 45%
缅因州 | REP | 54%

优势说明

这种方法完全利用Pandas的内置优化操作,比手动遍历效率高几十倍,尤其是当数据集行数较多时,性能差距会更明显。

内容的提问来源于stack exchange,提问作者lordcarrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:56:30