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

Python多列数据透视表问题:如何纳入Circuit列?

问题描述

我有一个包含Circuit、Time、Variable Max、Element列的DataFrame,需要将其重组为以Circuit和Time为行索引,Element的P、Q为列,对应显示Variable Max值的表格。之前的pivot_table代码未纳入Circuit列,求修改方案。

原代码:

# Leer el archivo CSV
df = pd.read_csv(directorio_2022, sep=';')

# Crear una tabla dinámica
tabla_dinamica = df.pivot_table(index=df.columns[1], columns=df.columns[5], values=df.columns[7], aggfunc='sum')

# Guardar la tabla dinámica en un archivo CSV
tabla_dinamica.to_csv('tabla_dinamica.csv', sep=';')

print("Tabla dinámica creada y guardada en 'tabla_dinamica.csv'.")

修改后的代码

# Leer el archivo CSV
df = pd.read_csv(directorio_2022, sep=';')

# 创建包含Circuit和Time的复合行索引的透视表
# 建议直接使用列名替代列索引,避免列顺序变动导致错误
tabla_dinamica = df.pivot_table(
    index=['Circuit', 'Time'],  # 复合行索引:Circuit + Time
    columns='Element',          # 列:Element的不同取值(P、Q)
    values='Variable Max',      # 填充的值:Variable Max
    aggfunc='sum'               # 聚合函数,保持原逻辑的sum
)

# Guardar la tabla dinámica en un archivo CSV
tabla_dinamica.to_csv('tabla_dinamica.csv', sep=';')

print("Tabla dinámica creada y guardada en 'tabla_dinamica.csv'.")

关键修改点

  • 将index参数从单一列(仅Time)改为列表['Circuit', 'Time'],实现复合行索引,满足同时以Circuit和Time分组的需求。
  • 替换原代码中用df.columns[n]的方式为直接写列名,代码可读性更强,且后续CSV列顺序变动时不会出错。如果你的列名和实际CSV有出入,自行调整对应列名即可。

内容的提问来源于stack exchange,提问作者Jose L Gutierrez A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:11:03