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

使用pandas将列条目转为行 把Description列值设置为新列表头

解决方案

你的数据集是典型的长表转宽表场景,每3行连续数据对应同一个州的三个指标,按以下步骤实现即可:

首先在你现有代码的基础上添加如下逻辑:

# 为同一个州的3条数据分配相同的分组ID
df['group_id'] = np.arange(len(df)) // 3

# 长表转宽表,将Description的取值转为列名,对应值取Data列的内容
res = df.pivot(index='group_id', columns='Description', values='Data')

# 清理索引和列名,得到最终结果
res = res.reset_index(drop=True).rename(columns={'state': 'State'})

如果需要对指标列做数据类型转换方便后续计算,可以添加以下代码:

# 接种人数去掉千位逗号转整数
res['num people vaccinated'] = res['num people vaccinated'].str.replace(',', '').astype(int)
# 接种比例转浮点型
res['percentage of population vaccinated'] = res['percentage of population vaccinated'].astype(float)

运行后得到的res就是你需要的结构,每行对应一个州,列分别为State、num people vaccinated、percentage of population vaccinated。你问题里提到的期望表头多了一个Data列属于表述误差,按你的原始数据结构转完后不需要额外的Data列,如果确实有特殊需求要保留原Data列可以自行调整pivot逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:57:01