【问题标题】:Pandas - count distinct values per column [duplicate]Pandas - 计算每列的不同值[重复]
【发布时间】:2017-11-02 06:08:45
【问题描述】:

我有一个如下所示的数据框:

Id ActivityId ActivityCode

1   2           3
1   2           4
1   3           2

我需要获取与 Id 相关的不同 Activity ID 的计数。

在上面的示例中,id 1 将返回 2,因为该 id 有 2 个不同的活动 id。

SQL 看起来是这样的:

SELECT COUNT(DISTINCT ActivityId) FROM table GROUP BY Id

如何在 pandas 中做到这一点?

(如果可能的话,我想知道是否有办法在字典中获取结果,而无需手动迭代)

【问题讨论】:

    标签: python pandas dictionary group-by


    【解决方案1】:

    我认为你需要 groupbynunique

    print (df)
       Id  ActivityId  ActivityCode
    0   1           2             3
    1   1           2             4
    2   1           3             2
    3   2           8             7
    
    df = df.groupby('Id')['ActivityId'].nunique()
    print (df)
    Id
    1    2
    2    1
    Name: ActivityId, dtype: int64
    

    对于dict,添加Series.to_dict

    d = df.groupby('Id')['ActivityId'].nunique().to_dict()
    print (d)
    {1: 2, 2: 1}
    

    【讨论】:

    • 很高兴能帮上忙,祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 2016-11-13
    相关资源
    最近更新 更多