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

如何用Pandas的stack、melt、pivot等操作整理特定混乱DataFrame

解决方案

可以通过拆分元数据(type/model信息)与数值数据(年份对应值),再合并重塑的方式解决该问题,具体步骤如下:

  1. 提取元数据:从原DataFrame的前两行提取每个factor对应的type和model,转置后整理成结构化数据:
meta = df.iloc[:2].set_index('date').T.reset_index()
meta.columns = ['factor', 'type', 'model']
  1. 提取并处理数值数据:提取第2行及之后的年份与对应数值,转置后将数值转为整数类型:
values = df.iloc[2:].set_index('date').T.reset_index()
values.columns = ['factor'] + list(df.iloc[2:, 0])
# 转换数值类型
for year in df.iloc[2:, 0]:
    values[year] = values[year].astype(int)
  1. 合并数据并设置多级索引:将元数据与数值数据按factor字段合并,再设置model和type为多级索引,得到目标格式:
merged = pd.merge(meta, values, on='factor')
result = merged.drop('factor', axis=1).set_index(['model', 'type'])
# 移除索引名称(可选,匹配目标输出样式)
result.index.names = [None, None]

执行后result的输出即为所需格式:

2020  2021  2022  2023
model_1   type_1     1     2     3     4
          type_2     5     6     7     8
model_2   type_3     9    10    11    12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:05:16