Python Pandas:分类变量的Group BY函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Pandas:分类变量的Group BY函数相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的数据框:

     DATE                       Cause                 Value
0        2019-04-01     Foreign Interference          0.52680
1        2019-04-01     Foreign Interference          0.91260
2        2019-04-02          Equipment                0.03129
3        2019-04-02          Equipment                0.74794
4        2019-04-02  Vegetation - Touching / Burning  0.12511
5        2019-04-02     Incorrect Installation        0.05635
6        2019-04-02     Incorrect Installation        0.03070
7        2019-04-03     Incorrect Installation        0.02296

现在,我想按日期对数据帧进行分组并汇总值。但是,如果要在同一日期发生,我希望“原因”列显示为原因的集合。所以我想要的输出将是这样的:

所需输出:

          DATE                       Cause            Value
0        2019-04-01     Foreign Interference          1.438
1        2019-04-02     Equipment,                    0.9915
                        Vegetation - Touching / Burning, 
                        Incorrect Installation                      
2        2019-04-03     Incorrect Installation        0.02296

我尝试使用groupby(['Date','Cause']),但未产生所需的输出。任何帮助将非常感激。

答案

让我们用aggunique

s=df.groupby('DATE',as_index=False).agg({'Cause': lambda x : ','.join(x.unique()), 'Value':'sum'})

以上是关于Python Pandas:分类变量的Group BY函数的主要内容,如果未能解决你的问题,请参考以下文章

pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用get_group函数获取指定分组变量的具体分类值下的所有样本(获取的是多个分组中的其中一个分组的内容)

获取分类变量的类别列表(Python Pandas)

Python SciKit Learn 和 Pandas 分类数据

Python:构建 Pandas 数据框的对象

在 pandas for python 中创建虚拟变量

Python数据挖掘—回归—贝叶斯分类