如何在pandas中高效将DataFrame多列数据展平为单行
pandas DataFrame多列展平为单行的高效实现方案
先构造你给出的示例DataFrame作为测试基础:
import pandas as pd df = pd.DataFrame({'A': ['a', 'c'], 'B': ['b', 'd']}, index=[1, 2])
方案1:unstack 向量化方案(推荐,性能最优)
完全基于pandas原生向量化操作,没有显式循环,适合大数据量场景:
# 先将行索引转为列索引的二级层级 s = df.unstack() # 拼接生成符合要求的列名 s.index = [f"{col}_{idx}" for col, idx in s.index] # 转为单行DataFrame res = s.to_frame().T
方案2:循环构造方案
代码逻辑直观,适合小数据量、需要灵活调整列名规则的场景:
res_dict = {} for col in df.columns: for idx in df.index: res_dict[f"{col}_{idx}"] = df.at[idx, col] res = pd.DataFrame([res_dict])
效果验证
两种方案输出的结果完全符合要求:
- 列名:
A_1、A_2、B_1、B_2 - 对应值:
'a'、'c'、'b'、'd'
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

