如果我有这样的桌子
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中做count(distinct hID),为唯一的hID计算出5的计数。我怎么用熊猫数据在蟒蛇身上做到这一点呢?或者可能是个矮胖的数组?同样,如果要做count(hID),我将在Qlik获得8。在熊猫身上有什么类似的方法呢?
发布于 2017-08-18 15:20:29
计数不同的值,使用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发布于 2017-08-18 15:23:55
如果假设数据是数据的名称,则可以这样做:
data['race'].value_counts()这将显示不同的元素及其发生的次数。
发布于 2017-08-18 15:23:54
或获取每一列的唯一值数:
df.nunique()
dID 3
hID 5
mID 3
uID 5
dtype: int64pandas 0.20.0 pd.DataFrame.agg的新产品
df.agg(['count', 'size', 'nunique'])
dID hID mID uID
count 8 8 8 8
size 8 8 8 8
nunique 3 5 3 5您一直能够在一个agg中执行groupby。最后我使用了stack,因为我更喜欢演示文稿。
df.groupby('mID').agg(['count', 'size', 'nunique']).stack()
dID hID uID
mID
A count 5 5 5
size 5 5 5
nunique 3 5 5
B count 2 2 2
size 2 2 2
nunique 2 2 2
C count 1 1 1
size 1 1 1
nunique 1 1 1https://stackoverflow.com/questions/45759966
复制相似问题