如何将长格式Pandas DataFrame转换为带枚举列名的单行DataFrame
Pandas原生简洁实现方案
你可以直接使用stackAPI完成转换,无需手动拉平数组或拼接列名列表,同时还能解决原有方案中整数自动转浮点数的问题,列顺序和你原有实现完全一致:
import pandas as pd import numpy as np # 示例数据 data = [ {'len_overlap': 2, 'prox': 1.0, 'freq_sum_w': 0.03962264150943396}, {'len_overlap': 22, 'prox': np.nan, 'freq_sum_w': 0.0311111962264150943396} ] df = pd.DataFrame(data) # 核心转换代码 s = df.stack() s.index = [f"{col}_{row}" for row, col in s.index] result = s.to_frame().T
方案优势
- 完全遵循Pandas原生API设计规范,无冗余依赖
- 自动保留各列原始数据类型,不会出现统一转浮点数的问题
- 代码逻辑清晰,可读性和可维护性更高
内容的提问来源于stack exchange,提问作者Ezer K
相关产品推荐
相关产品推荐

