如何在Pandas中按索引分组并将Coupon对应的SMM_diff转为列
解决方案
根据你的需求,要将每个Coupon对应的SMM_diff转为单独列,以y_m作为唯一索引,可以通过以下两种方式实现:
情况1:原始DataFrame是多级索引(y_m和Coupon为索引,列仅为SMM_diff)
使用unstack方法将Coupon索引转为列,再重命名列名:
# 假设你的DataFrame名为df # 将Coupon索引展开为列 df_unstacked = df.unstack(level='Coupon') # 重命名列,格式化为SMM_diff_<Coupon值> df_unstacked.columns = [f"SMM_diff_{coupon}" for coupon in df_unstacked.columns.get_level_values(1)]
情况2:原始DataFrame是普通列结构(包含y_m、Coupon、SMM_diff三列)
使用pivot方法直接重塑数据:
# 假设你的DataFrame名为df df_pivoted = df.pivot(index='y_m', columns='Coupon', values='SMM_diff') # 重命名列 df_pivoted.columns = [f"SMM_diff_{coupon}" for coupon in df_pivoted.columns]
执行后就能得到你想要的结果:y_m作为索引,每个Coupon对应的SMM_diff成为单独的列,列名格式为SMM_diff_<Coupon数值>。
内容的提问来源于stack exchange,提问作者hulio_entredas
相关产品推荐
相关产品推荐

