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

Python中如何重塑数据集?用stack()实现宽表转长表

在Python中重塑数据集的完整实现步骤

没问题,我来一步步带你实现这个宽表转长表的操作,用pandas就能轻松搞定,具体步骤如下:

  • 步骤1:导入pandas库
    首先得确保你安装了pandas,然后导入它:

    import pandas as pd
    
  • 步骤2:构造初始的宽表DataFrame
    把你给出的原始数据转换成pandas的DataFrame对象:

    # 定义原始数据
    raw_data = {
        'Source': ['ABC', 'XYZ'],
        'Jan_values': [100, 200],
        'Feb_values': [200, 300],
        'Mar_values': [300, 400]
    }
    df = pd.DataFrame(raw_data)
    
  • 步骤3:使用stack()方法重塑数据
    直接用stack()之前,我们需要先把Source列设为索引,这样它不会被堆叠到行里;堆叠后再重置索引把多级索引转成普通列:

    # 设置Source为索引,堆叠月份列,然后重置索引
    reshaped_df = df.set_index('Source').stack().reset_index()
    
  • 步骤4:整理列名和月份格式
    堆叠后的列名是默认的,我们需要改成你想要的名称,同时把月份列的_values后缀去掉:

    # 重命名列
    reshaped_df.columns = ['Source', 'Month', 'values']
    # 去除月份列的后缀
    reshaped_df['Month'] = reshaped_df['Month'].str.replace('_values', '')
    
  • 查看最终结果
    打印一下处理后的DataFrame,就是你想要的格式了:

    print(reshaped_df)
    

运行上面的代码后,输出结果如下:

Source Month  values
0    ABC   Jan     100
1    ABC   Feb     200
2    ABC   Mar     300
3    XYZ   Jan     200
4    XYZ   Feb     300
5    XYZ   Mar     400

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:40:22