You need to enable JavaScript to run this app. pandas宽格式DataFrame转长格式,pd.melt无法实现如何处理
优惠活动
大模型
产品
解决方案
定价
更多

pandas宽格式DataFrame转长格式,pd.melt无法实现如何处理

实现方法

你可以直接拆分两组id对应的属性列后合并,逻辑更直观,代码如下:

import pandas as pd

# 拆分id1对应的属性列,重命名为目标列名
df_id1 = df[["id1", "source_id1", "panel_id1"]].rename(
    columns={"id1": "id", "source_id1": "source", "panel_id1": "panel"}
)
# 拆分id2对应的属性列,重命名为目标列名
df_id2 = df[["id2", "source_id2", "panel_id2"]].rename(
    columns={"id2": "id", "source_id2": "source", "panel_id2": "panel"}
)
# 合并两个子表,删除id为空的无效行
result = pd.concat([df_id1, df_id2], ignore_index=True).dropna(subset=["id"]).reset_index(drop=True)

逻辑说明

原表的每一行并行存储了id1、id2两类id对应的source和panel属性,所以分别提取两类id的相关字段、对齐列名后合并,再过滤掉空id的无效行,就能得到你需要的长表结构,无需强制使用pd.melt实现。

内容的提问来源于stack exchange,提问作者Y.C.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 00:15:03