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

选举数据大规模整理需求:将分组行转换为列

将选举数据从长格式转换为宽格式(按选区聚合)

完全可以实现把每个选区(precinct)转为单行的宽格式数据,以下是两种常用工具的实现方法:

方法一:使用Excel(适合非编程用户)

  1. 选中包含表头的全部数据区域,点击「数据」选项卡中的「从表格/范围」(Excel 365/2021版本可用,旧版本可使用「数据透视表」功能)。
  2. 在Power Query编辑器中,选中precinct列,切换到「转换」选项卡,点击「透视列」。
  3. 在弹出的设置窗口中:
    • 「值列」选择cand_tot_votes
    • 「高级选项」选择「不要聚合」(因为每个选区+党派的组合是唯一的,无需聚合)
  4. 此时生成的列名是GOVERNOR DEM这类格式,你可以手动修改表头为Gov Dem、Gov Rep等自定义名称。
  5. 点击「关闭并上载」,即可得到每个选区一行的宽格式数据。

方法二:使用Python Pandas(适合批量/自动化处理)

如果需要处理大量数据或自动化流程,用Pandas可以快速完成转换,代码示例如下:

import pandas as pd

# 读取原始数据(替换为你的数据来源,比如csv、Excel文件)
df = pd.read_csv("oklahoma_election_data.csv")

# 生成自定义列名:将race_description缩写后与党派组合,比如"GOVERNOR" → "Gov"
df['column_name'] = df['race_description'].str[:3].str.upper() + ' ' + df['cand_party']

# 透视转换:以precinct为行,自定义列名为列,投票数为值
wide_format_df = df.pivot(
    index='precinct',
    columns='column_name',
    values='cand_tot_votes'
).reset_index()

# 移除列索引的名称,让表头更简洁
wide_format_df.columns.name = None

# 可选:将空值(无该党派投票的选区)填充为0
wide_format_df = wide_format_df.fillna(0).astype(int)

# 输出结果
print(wide_format_df)

转换后的示例结果:

precinct  Gov DEM  Gov IND  Gov LIB  Gov REP
0     10001      106        5        7      118
1     10002       84        9        3      151
2     10003       36        2        0        0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:35:21