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

Pandas如何对DataFrame转置以获取剩余两列的对应数值

解决方案

你要实现的是长表转宽表的需求,直接使用.T全局转置不符合该场景的逻辑,pivot方法即可快速实现:

  • 首先统一subject列的大小写(避免原始数据中Art和art被识别为不同科目):
df['subject'] = df['subject'].str.lower()
  • 执行长表转宽表操作:
result_df = df.pivot(
    index='name',
    columns='subject',
    values='marks'
).reset_index().fillna('')
  • 输出的result_df就是你需要的结构:第一列为name,后续列为各科目名称,对应位置填充marks值,空值默认替换为空字符串。

补充说明:如果你的实际数据中存在同一个用户同一科目有多个分数的情况,可以改用pivot_table方法指定聚合规则,比如取平均值:

result_df = df.pivot_table(
    index='name',
    columns='subject',
    values='marks',
    aggfunc='mean'
).reset_index().fillna('')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:42:04