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

如何将pd.DataFrame行中的分类条目转换为列?

解决方法:将长格式DataFrame转换为宽格式

你可以用Pandas的pivot或pivot_table函数快速实现这种格式转换,具体步骤如下:

1. 基础转换(无重复条目)

如果每个id+name的组合是唯一的,直接用pivot函数:

import pandas as pd

# 假设已从JSON文件读取得到DataFrame df
# df = pd.read_json('your_data.json')

# 执行透视转换
wide_df = df.pivot(
    index=['sl no.', 'id', 'date'],  # 保留为行标识的列
    columns='name',                 # 要转为列的分类字段
    values='value'                  # 填充到新列的值
).reset_index()

# 清理列名层级
wide_df.columns.name = None

转换后得到的wide_df格式就和你期望的一致:

sl no.    id    Math    Phy    date
1        101    90      87     -
3        201    85      93     -

2. 处理重复条目

如果存在同一个学生同一科目有多条记录的情况,用pivot_table配合聚合函数处理:

wide_df = df.pivot_table(
    index=['sl no.', 'id', 'date'],
    columns='name',
    values='value',
    aggfunc='mean'  # 可根据需求替换为sum、first、max等
).reset_index()

wide_df.columns.name = None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:13:16