Python如何将多行DataFrame转换为仅含单行的宽格式DataFrame
实现代码
首先构造你描述的原始DataFrame用于演示:
import pandas as pd # 构造原始DataFrame df = pd.DataFrame( {"A": [1, 2, 3], "B": [2, 4, 6]}, index=["x", "y", "z"] )
方法1:使用unstack方法实现
# 先将DataFrame展平为带多级索引的Series s = df.unstack() # 合并多级索引为你需要的列名格式 s.index = [f"{col}_{idx}" for col, idx in s.index] # 转为单行DataFrame result = s.to_frame().T
方法2:直接遍历构造结果(逻辑更直观)
result_data = {} # 按顺序遍历列和行索引,拼接列名并赋值 for col in df.columns: for idx in df.index: result_data[f"{col}_{idx}"] = df.loc[idx, col] # 直接生成单行DataFrame result = pd.DataFrame([result_data])
两种方法得到的result均符合需求,列顺序为A_x、A_y、A_z、B_x、B_y、B_z,对应值正确。
内容的提问来源于stack exchange,提问作者pariskey
相关产品推荐
相关产品推荐

