如何使用Pandas生成带Type后缀的多列透视表?
Pandas实现DataFrame列重组(按Type值作为列后缀)
原始数据构造
先还原你给出的原始DataFrame:
import pandas as pd data = { 'C1': ['A', 'A'], 'A1': [1., 7.], 'A2': [5., 3.], 'A3': [2., 8.], 'Type': ['AG', 'SC'] } df = pd.DataFrame(data)
转换实现代码
直接用pivot函数完成分组与列重组,再整理列名即可:
# 透视转换,生成多层列索引的DataFrame result_df = df.pivot(index='C1', columns='Type', values=['A1', 'A2']) # 合并多层列名为"原列名_Type值"的格式 result_df.columns = [f'{col[0]}_{col[1]}' for col in result_df.columns] # 可选:将C1从行索引转回普通列 result_df = result_df.reset_index() # 输出结果 print(result_df)
执行后得到的结果就是你需要的结构:
C1 A1_AG A1_SC A2_AG A2_SC 0 A 1.0 7.0 5.0 3.0
补充说明
- 如果原始数据里C1有多个不同取值,
pivot会自动按C1分组处理,每个C1对应一行结果 - 代码里自动丢弃了A3列,因为
values参数只指定了A1和A2,如果需要保留A3可以自行调整参数
内容的提问来源于stack exchange,提问作者Cranjis
相关产品推荐
相关产品推荐

