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

如何将DataFrame指定列转置为行并合并为cohort与value两列

解决方案

你需要的是宽表转长表的操作,直接用pandas的melt函数即可实现,代码示例如下:

首先构造测试用的原始DataFrame:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'metric': ['logins'],
    'control': [4],
    'test': [2],
    'duration': ['short']
})

执行转换操作:

# melt转换
res = df.melt(
    id_vars=['metric', 'duration'],  # 不需要转置、保留原值的列
    value_vars=['control', 'test'],  # 需要转置为多行的列
    var_name='cohort',  # 存储原列名的新列名称
    value_name='value'  # 存储原列数值的新列名称
)

如果需要调整列顺序和你示例的输出完全一致,可以再加一步列顺序调整:

res = res[['metric', 'cohort', 'value', 'duration']]

最终输出的结果和你预期的格式完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:01