如何将Pandas DataFrame转换为带POS后缀的单行扁平化宽表
实现代码
你可以通过索引调整 + 层级拼接的方式实现,完整示例如下:
import pandas as pd # 构造示例数据,你可以替换为自己读取的DataFrame df = pd.DataFrame({ 'POS': [10122, 10123], 'Price': [100, 500], 'Cost': [20, 5] }) # 核心转换逻辑 # 1. 将POS设为行索引,展开得到二级索引的Series res_series = df.set_index('POS').unstack() # (可选)如果需要按POS分组排列列名(同POS的所有字段相邻),添加下面这行 res_series = res_series.swaplevel().sort_index() # 2. 按规则拼接新列名 res_series.index = [f"{field}_POS{pos}" for field, pos in res_series.index] # 3. 转为单行宽表 result_df = res_series.to_frame().T
运行后输出的result_df就是符合要求的单行宽表,你可以直接打印或导出使用。
内容的提问来源于stack exchange,提问作者Alessandro Ceccarelli
相关产品推荐
相关产品推荐

