如果我有这样的表:
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。在熊猫中等效的方法是什么?
count(distinct hID)
count(hID)
计算不同的值,使用nunique:
nunique
df['hID'].nunique() 5
只计算非空值,使用count:
count
df['hID'].count() 8
计算包括空值在内的总值,使用size属性:
size
df['hID'].size 8
使用布尔索引:
df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])
或使用query:
query
df.query('mID == "A"')['hID'].agg(['nunique','count','size'])
输出:
nunique 5 count 5 size 5 Name: hID, dtype: int64