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

如何基于列名数字后缀拆分pandas DataFrame并转换为长表格式

解决方案

你可以直接使用 pandas 内置的 pd.wide_to_long() 方法实现需求,该方法专门用于处理列名带固定数字后缀、需要拆分多行的宽表场景,是当前场景的最优解,代码非常简洁:

1. 构造示例数据

import pandas as pd
df = pd.DataFrame({
    'Mean 1': [5, 3],
    'Mean 2': [10, 6],
    'Stat 1': [15, 9],
    'Stat 2': [20, 12],
    'ID': ['Z', 'X']
})

2. 核心转换代码

result = pd.wide_to_long(
    df,
    stubnames=['Mean', 'Stat'], # 要拆分的列名前缀
    i='ID', # 固定不变的索引列
    j='#', # 新生成的编号列名称
    sep=' ' # 列名前缀和编号之间的分隔符
).reset_index()

执行后得到的结果和你预期的输出完全一致,可按需调整列的顺序。如果强行用pd.melt()实现需要多次拆分拼接,代码冗余度高,不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:33:02