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

如何将Pandas DataFrame表头转换为列?(大样本场景适用)

解决方案

要将宽格式的DataFrame转换为目标的长格式(日期、名称、数值三列结构),可以使用Pandas的stack()或melt()方法,这两种方法都能高效处理你提到的1000行+243列的大数据量。

方法一:使用stack()(更简洁)

针对你的示例数据,代码如下:

# 将列转为二级索引,再重置索引得到长格式
df_long = df.stack().reset_index()
# 重命名列名匹配目标格式
df_long.columns = ['日期', '名称', '数值']

执行后得到的结果示例:

日期名称数值
21/10/2022Name_12
21/10/2022Name_28
21/10/2022Name_37
22/10/2022Name_16
.........

方法二:使用melt()

如果需要更明确地指定转换逻辑,也可以用melt():

# 先将日期索引转为普通列
df_reset = df.reset_index()
# 执行宽转长操作
df_long = df_reset.melt(
    id_vars='index',  # 保留的标识列(日期)
    var_name='名称',   # 原列名对应的新列名
    value_name='数值'  # 原单元格值对应的新列名
)
# 重命名日期列
df_long.rename(columns={'index': '日期'}, inplace=True)

两种方法都是Pandas内置的矢量化操作,处理大体积数据时性能优异,无需担心效率问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:24