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

如何将多列Pandas DataFrame扁平化转换为两列结构

Pandas多列DataFrame扁平化实现方案

你可以通过stack堆叠+索引拼接的方式快速实现需求,完整代码如下:

import pandas as pd

# 构造示例数据
group_a = {'ba':[2.0,9.4,10.8],
          'bb':[4.2,7.1,3],
          'bc':[8.1,9.5,6.1]}
A = pd.DataFrame(group_a, index=['aa','ab','ac'])

# 核心处理逻辑
res = A.stack()
res.index = res.index.map(lambda idx_pair: f"{idx_pair[0]}_{idx_pair[1]}")
res = res.to_frame("Values")

执行后打印res即可得到你要的目标结构:

Values
aa_ba     2.0
aa_bb     4.2
aa_bc     8.1
ab_ba     9.4
ab_bb     7.1
ab_bc     9.5
ac_ba    10.8
ac_bb     3.0
ac_bc     6.1

步骤说明

  • 调用stack()方法会将原DataFrame的所有列转换为行索引的第二层,生成一个双层索引的Series,索引第一层是原行索引、第二层是原列名,Series存储的值就是原表对应位置的数值
  • 通过index.map遍历双层索引的每一组元组,按照原行索引_原列名的格式拼接为单级字符串索引
  • 最后调用to_frame()将Series转换为单列DataFrame,指定列名为Values即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 07:12:52