【问题标题】:Pandas - how to get mean of each level of many categorical columns?Pandas - 如何获得许多分类列的每个级别的平均值?
【发布时间】:2019-08-16 04:15:51
【问题描述】:

我有一个数据框:

    cat1 cat2 res
0   a   d     3
1   a   e     2
2   b   d     7
3   b   f     6
4   c   e     4
5   c   f     5

如何使用尽可能少的代码获取下面的数据框(即 res 的每个级别的 cat1cat2 的平均值)?

       res
cat1 a 1.5
     b 6.5
     c 4.5
cat2 d 5
     e 3
     f 5.5

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    试试meltgroupby

    df.melt(id_vars='res').groupby(['variable', 'value']).mean()
    

    输出:

                    res
    variable value     
    cat1     a      2.5
             b      6.5
             c      4.5
    cat2     d      5.0
             e      3.0
             f      5.5
    

    【讨论】:

    • 啊我忘了melt。非常感谢广!
    猜你喜欢
    • 2022-08-14
    • 1970-01-01
    • 2015-06-01
    • 2018-11-20
    • 2018-12-24
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多