Python中Pandas DataFrame转置并将Status值设为列名的实现问题
Pandas 转置实现方案
你之前使用的df.set_index('Status').T写法没有考虑按Name、Tahun分组,也会把不需要转置的公共维度转为行,因此不符合需求,可按以下逻辑实现:
import pandas as pd # 核心处理代码 result = ( df.set_index(["Name", "Tahun", "Status"]) # 将Status的取值转为列头 .unstack(level="Status") # 将Percentage、Value转为行维度的Type字段 .stack(level=0) # 索引转为普通列 .reset_index() # 重命名指标列 .rename(columns={"level_2": "Type"}) # 按预期调整列顺序 [["X", "Y", "Z", "Type", "Name", "Tahun"]] )
运行后输出的result和你给出的预期结果完全一致。
内容的提问来源于stack exchange,提问作者ohai
相关产品推荐
相关产品推荐

