首页 > 解决方案 > 如何在 pandas 中按 2 个条件聚合?

问题描述

我有一张如下表

日期 火车 条件一 条件 2
第1天 1111 真的 0
第2天 2222 错误的 2

......

我想将火车与日期分组,

日期 列车总数 train 条件 1 为真 训练条件 2 > 0 条件 1 为真且条件 2>0 的训练
第1天 1 1 0 0
第2天 1 0 1 0

我写了一个类似下面的函数,发现它似乎不支持不可哈希类型:'list'?

df1 = (
    df.groupby('date')
        .agg(**{
        'train total count': ('train', 'count'),
        'train condition1 count': ('conditon1', lambda x: sum(x.gt(0))),
        'train condition1 &2 count': (['condition1', 'condition2'], lambda x: sum(x[0] + x[1] > 0))
    }).reset_index()
)

标签: pythonpandasaggregate

解决方案


推荐阅读