这是我手边的数据框:
df = pd.DataFrame({
'id': [1,1,1,2,2,3,3],
'length': [20, 20, 20, 4, 4, 15,15],
'speed': [17.2,16.5,18, 2.3,2.1,10,9.8]
})
df
id length speed
0 1 20 17.2
1 1 20 16.5
2 1 20 18.0
3 2 4 2.3
4 2 4 2.1
5 3 15 10.0
6 3 15 9.8
我要计算id
小于5的唯一length
。
df[df['length']<5].groupby('id')['length'].value_counts()
id length
2 4 2
Name: length, dtype: int64
如何简单获取长度小于5的总ID?像这样:
df[where df.length<5]
1
答案 0 :(得分:1)
只需在过滤器后使用nunique
:
df[df.length < 5].id.nunique()
# 1