如果我有一个这样的表格:

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']
})

我可以在Qlik中做计数(不同的hID),为唯一的hID计算5。我如何在python中使用熊猫数据框架做到这一点?或者是numpy数组?类似地,如果要做计数(hID),我将在Qlik中得到8。对熊猫来说,同样的方法是什么?


当前回答

你可以在pandas中使用nunique:

df.hID.nunique()
# 5

其他回答

你可以在pandas中使用nunique:

df.hID.nunique()
# 5

如果我假设数据是你的数据框架的名称,你可以这样做:

data['race'].value_counts()

这将告诉你不同的元素和它们的出现次数。

对于没有重复的行的唯一计数

df[‘实际’]nunique()。

要知道复制的每个惟一行内容的数量

df(‘藏’).value_counts ()

计数不同的值,使用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'])

或使用查询:

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

输出:

nunique    5
count      5
size       5
Name: hID, dtype: int64

你可以使用len函数来使用unique属性

莱恩(unique df[‘实际’]。) 5