【问题标题】:pandas aggregate count higher than threshold熊猫总计数高于阈值
【发布时间】:2018-11-19 05:00:27
【问题描述】:

我有一个要分组的数据框。我想使用 df.agg 来确定超过 180 的长度。

有没有办法为它写一个小函数?

我试过len(nice_numbers[nice_numbers > 180]),但没用。

df = pd.DataFrame(data = {'nice_numbers': [60, 64, 67, 70, 73, 75, 130, 180, 184, 186, 187, 187, 188, 194, 199, 195, 200, 210, 220, 222, 224, 250, 70, 40, 30, 300], 'activity': 'sleeping', 'sleeping', 'sleeping', 'walking', 'walking', 'walking', 'working', 'working', 'working', 'working', 'working', 'restaurant', 'restaurant', 'restaurant', 'restaurant', 'walking', 'walking', 'walking', 'working', 'working', 'driving', 'driving', 'driving', 'home', 'home', 'home}')
df_gb = df.groupby('activity')
df_gb.agg({'count_frequency_over_180'})

谢谢

【问题讨论】:

    标签: python-3.x python-2.7 pandas


    【解决方案1】:

    通过比较gt 的列与聚合sum 的计数Trues 值来创建布尔掩码:

    df1 = (df['nice_numbers'].gt(180)
                             .groupby(df['activity'], sort=False)
                             .sum()
                             .astype(int)
                             .reset_index())
    

    sum by set_index 创建的索引的类似解决方案:

    df1 = df.set_index('activity')['nice_numbers'].gt(180).sum(level=0).astype(int).reset_index()
    print (df1)
         activity  nice_numbers
    0    sleeping             0
    1     walking             3
    2     working             5
    3  restaurant             4
    4     driving             2
    5        home             1
    

    编辑:

    有关nice_numbers 列的更多指标,请使用agg

    agg = ('abobe_180_count', lambda x: x.gt(180).sum()), ('average', 'mean')
    df1 = df.groupby('activity')['nice_numbers'].agg(agg).reset_index()
    print (df1)
         activity  abobe_180_count     average
    0     driving                2  181.333333
    1        home                1  123.333333
    2  restaurant                4  192.000000
    3    sleeping                0   63.666667
    4     walking                3  137.166667
    5     working                5  187.000000
    

    【讨论】:

    • 你永远是最好的@jazrael,但如果我已经计算了其他指标,比如聚合函数中的平均值、标准差怎么办?我有更多的计算要做,我必须编写一个小函数来执行它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多