【问题标题】:Switch pandas Multi-index level column to header row将 pandas 多索引级别列切换到标题行
【发布时间】:2021-09-07 20:35:09
【问题描述】:

我有这个数据框(groupbyagg 的结果):

Unitcount 是唯一的列。 Product 和 Day 是多指标。 我想知道是否有任何方法可以将“日”多索引级别移动到标题。这是我正在寻找的输出:

现在天的顺序并不重要,我只是想知道 Pandas 是否可以进行这种切换。谢谢!

【问题讨论】:

    标签: python pandas multi-index


    【解决方案1】:

    使用Series.unstackDataFrame.reindex 以获得正确的列顺序:

    cols = ['LUNES', 'MARTES', 'MIÉRCOLES', 'JUEVES', 'VIERNES', 'SÁBADO', 'DOMINGO']
    df = df['day'].unstack(fill_value=0).reindex(cols, axis=1)
    

    【讨论】:

    • @JeanleChevalier - 你的groupbyagg 代码是什么?
    • means=df.groupby(["product", "day","hour"]).agg({"unitcount": "mean"}) 当我运行你的 2 行时,我得到了'Keyerr:天'
    • @JeanleChevalier - 你确定吗?样本数据不是hour。不是means=df.groupby(["product", "day"]).agg({"unitcount": "mean"})吗?
    • 抱歉,在我的 group by agg 之后我这样做了:df3=means.groupby(level=[0,1]).sum() 然后将您的行应用到 df3
    • @JeanleChevalier - 是的,那么它工作了吗?因为来自df3=means.groupby(level=[0,1]).sum() 的输出没有RangeIndex
    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 2014-07-10
    • 2018-12-20
    • 2021-12-17
    • 1970-01-01
    • 2016-02-21
    • 2014-07-30
    相关资源
    最近更新 更多