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

如何使用Python将DataFrame的所有列名向左偏移?

解决方案:将宽格式DataFrame转换为长格式

你需要将宽格式的DataFrame转换为长格式,这可以通过pandas的melt()函数快速实现,以下是具体步骤:

核心思路

原始宽表中,每行对应一个样本,列是不同的特征;转换后的长表会将所有特征列拆分为两列(特征名、特征值),同时保留样本的唯一标识。

代码实现

1. 导入依赖

import pandas as pd

2. 执行转换

假设你的原始DataFrame第一列为样本标识(如ID),其余列为特征列:

# 将宽表转长表
long_format_df = df.melt(
    id_vars=df.columns[0],  # 指定样本标识列(保留不被拆分的列)
    var_name="Variable",    # 新的特征名列的名称
    value_name="Value"      # 新的特征值列的名称
)

如果原始DataFrame没有单独的ID列,以索引作为样本标识:

# 先将索引转为显式ID列
df = df.reset_index(names="ID")
# 执行转换
long_format_df = df.melt(id_vars="ID", var_name="Variable", value_name="Value")

注意事项

由于你的DataFrame维度为(25000, 20000),转换后会生成约5亿行数据(25000 × 19999),建议:

  • 确保内存充足,必要时可以优化数据类型(比如将float64转为float32)
  • 若内存不足,可考虑分块处理或使用Dask等大数据工具

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:51:53