Count distinct values, use nunique:
df['hID'].nunique()
5
Count only non-null values, use count:
df['hID'].count()
8
Count total values including null values, use the size attribute:
df['hID'].size
8
Edit to add condition
Use boolean indexing:
df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])
OR using query:
df.query('mID == "A"')['hID'].agg(['nunique','count','size'])
Output:
nunique 5
count 5
size 5
Name: hID, dtype: int64