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

如何在Pandas中转置指定列并与现有键列合并?

需求可行性及实现方法

完全可行,用Pandas的melt()函数就能轻松实现宽表转长表的需求,具体操作如下:

示例代码

  • 先构造模拟的原始DataFrame:
import pandas as pd

# 原始数据示例
df = pd.DataFrame({
    'type': ['A', 'A', 'B'],
    'product': ['P1', 'P2', 'P3'],
    'a1': [10, 20, 30],
    'a2': [15, 25, 35],
    'a3': [12, 22, 32],
    'a4': [18, 28, 38]
})
  • 使用melt()完成转换:
# 执行转置转换
result_df = df.melt(
    id_vars=['type', 'product'],  # 指定保留的键列
    var_name='a index',          # 对应原a1/a2等列名的新列名
    value_name='a value'         # 对应原a1/a2等列数值的新列名
)

转换结果说明

转换后的result_df完全符合需求:包含type、product、a index、a value四列,原始数据中每一行的a1至a4列会被拆分为多行,每行对应一组键列与单个a列的键值对。

比如原始第一行type=A, product=P1会被拆成4行,分别对应a1=10、a2=15、a3=12、a4=18。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:52:02