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

Python Pandas数据行列转换:将new_c_header列值转为新表头

实现方案

你可以通过melt + pivot的组合实现需求,核心逻辑是先把多列属性展开为行,再按表头字段转置为列,具体代码如下:

import pandas as pd

# 假设原始数据已读取为df
# 可选:如果原始空单元格是空白字符串而非NaN,先做格式转换
df = df.replace(r'^\s*$', pd.NA, regex=True)

# 第一步:将3个Attribute列从宽格式转为长格式
df_melted = df.melt(
    id_vars=['prefix', 'new_c_header'],
    value_vars=['1Attribute', '2Attribute', '3Attribute'],
    value_name='val'
)

# 第二步:删除空值(对应Overage行的空Attribute条目)
df_melted = df_melted.dropna(subset=['val'])

# 第三步:将new_c_header的取值转为列名完成转置
df_result = df_melted.pivot(
    index=['prefix', 'variable'],
    columns='new_c_header',
    values='val'
).reset_index()

# 第四步:清理冗余列,调整输出格式
df_result = df_result.drop(columns=['variable']).reset_index(drop=True)
# 若不需要保留空的Overage列可执行下行代码删除
# df_result = df_result.drop(columns=['Overage per Full Batch (Kg)'])

print(df_result)

运行后输出的df_result就和你预期的目标格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:57:00