小编典典

像 Qlik 一样计算 pandas 数据框中的列中的唯一值?

all

如果我有这样的表:

df = pd.DataFrame({
         'hID': [101, 102, 103, 101, 102, 104, 105, 101],
         'dID': [10, 11, 12, 10, 11, 10, 12, 10],
         'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
         'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})

我可以count(distinct hID)在 Qlik 中为唯一的 hID 计算 5。如何使用 pandas 数据框在 python
中做到这一点?或者也许是一个numpy数组?同样,如果要这样做,count(hID)我将在 Qlik 中获得 8。在熊猫中等效的方法是什么?


阅读 124

收藏
2022-06-24

共1个答案

小编典典

计算不同的值,使用nunique

df['hID'].nunique()
5

只计算非空值,使用count

df['hID'].count()
8

计算包括空值在内的总值,使用size属性:

df['hID'].size
8

编辑以添加条件

使用布尔索引:

df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])

或使用query

df.query('mID == "A"')['hID'].agg(['nunique','count','size'])

输出:

nunique    5
count      5
size       5
Name: hID, dtype: int64
2022-06-24