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

如何在Pandas DataFrame中透视均值:以周为列、原列为Type行

实现DataFrame均值透视的方法

原始DataFrame:

ID周数AB
1111
2112
1221
2223

目标结构:

类型第1周第2周...第N周
A12...
B1.52...

可以用pandas的melt和pivot_table组合实现,步骤如下:

  1. 构造原始数据并转成长格式,将A、B列合并为"类型"列,对应值存入"数值"列:
import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    "ID": [1,2,1,2],
    "周数": [1,1,2,2],
    "A": [1,1,2,2],
    "B": [1,2,1,3]
})

# 转换为长格式
melted_df = df.melt(id_vars=["ID", "周数"], var_name="类型", value_name="数值")
  1. 生成透视表,按"类型"分组、"周数"为列,计算数值的均值:
pivot_df = melted_df.pivot_table(index="类型", columns="周数", values="数值", aggfunc="mean")
  1. 调整列名格式,并重置索引让"类型"成为普通列:
pivot_df.columns = [f"第{week}周" for week in pivot_df.columns]
pivot_df = pivot_df.reset_index()

执行完成后,pivot_df即为目标结构的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:24:54