重命名多索引Pandas Dataframe 的名称

gj3fmq9x  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(193)

groupby函数创建的 Dataframe 出现问题。

df = base.groupby(['year', 'categ']).agg({'id_prod':'count', 'price':'sum'}).unstack(level=1)

它返回以下结果:

但我想将id_prodprice重命名为no_salesrevenue,但由于多索引,我不知道如何执行此操作
对于print(df.columns),结果为:

MultiIndex([('id_prod', 0),
            ('id_prod', 1),
            ('id_prod', 2),
            (  'price', 0),
            (  'price', 1),
            (  'price', 2)],
           names=[None, 'categ'])

那么这个names=[]是我想改变的吗谢谢你的帮助!

qhhrdooz

qhhrdooz1#

简短而简单,它只会根据多索引重命名列

df.columns = df.columns.map('_'.join)
mwyxok5s

mwyxok5s2#

df = df.rename(columns={'id_prod': 'no_sales', 'price': 'revenue'}, level=0)

level=0表示在多重索引中可以找到要重命名的键的位置。

相关问题