【问题标题】:Groupby and count only specific valuesGroupby 并仅计算特定值
【发布时间】:2017-07-24 04:54:57
【问题描述】:

我目前正在使用 python 中的数据库,并且正在使用 pandas。我当前的数据库看起来像这样:

Name      Approved
Google    true
Facebook  true
Apple     false
Trulia    true
Google    false
Trulia    true

我只想计算每家公司的“真实情况”。所以我的输出看起来像这样:

Name    Approved
Google     1
Facebook   1
Apple      0
Trulia     2

这是我当前的代码:

data.groupby(['Name'])[['Approved']].count()

这让我明白了:

Name    Approved
Google     2
Facebook   1
Apple      1
Trulia     2

如何更改此代码以仅计算每家公司的“真实”?谢谢!

【问题讨论】:

    标签: python pandas count group-by


    【解决方案1】:

    如果您在列中加载实际的 True False 对象,它们等价于 0 和 1,因此只需将其相加即可:

    df.groupby(['Name'])[['Approved']].sum().astype('int')
    Out[144]: 
              Approved
    Name              
    Apple            0
    Facebook         1
    Google           1
    Trulia           2
    

    【讨论】:

    • 对于这个例子,[['Approved']] 当然不需要(但我明白你为什么包含它):)
    猜你喜欢
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    相关资源
    最近更新 更多