Pandas - 计算每列的不同值[重复]
Posted
技术标签:
【中文标题】Pandas - 计算每列的不同值[重复]【英文标题】:Pandas - count distinct values per column [duplicate] 【发布时间】: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 中做到这一点?
(如果可能的话,我想知道是否有办法在字典中获取结果,而无需手动迭代)
【问题讨论】:
【参考方案1】:我认为你需要 groupby
和 nunique
:
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
【讨论】:
很高兴能帮上忙,祝你好运!以上是关于Pandas - 计算每列的不同值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
合并具有来自两个不同列的匹配值的 DataFrame - Pandas [重复]