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

Pandas链路DataFrame转换:函数使用与实现逻辑咨询

Pandas宽表转长表实现建议

第一步:生成过渡长表df2

你之前的代码问题出在Key列仅拼接了一次原始Key,而X、Y各有2对后缀列,相当于每一行原始数据要对应2行新数据,Key需要重复对应次数,所以长度不匹配。推荐两种实现方式:

  • 优先用pd.wide_to_long():这是处理带数字后缀成对宽列的专用函数,设置stubnames=['X', 'Y']、i='Key'、j='level'参数,运行后直接就能得到带Key、X、Y的长表,只需额外删除不需要的level列即可,代码简洁且不会出现行列匹配错误。
  • 也可以用pd.concat()手动拼接:遍历所有Xn/Yn的数字后缀,每轮提取对应Key、Xn、Yn列重命名为统一的X、Y,生成单级链路小表,最后把所有小表concat合并,逻辑直观易调试。

提示:不要再使用已废弃的append方法,Pandas 2.0+版本已经完全移除该API,所有拼接操作统一用pd.concat实现。

第二步:聚合得到最终表

  • 对df2按X、Y两列做groupby分组
  • 对Key列使用list作为聚合函数,即可得到关联该链路的所有Key列表;如果需要单元素时直接存储字符串而非列表,可以额外加个判断转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:03