我有一个这样的数据框(简化):
Year ID Value
0 2000 A 0
1 2001 A 1
2 2000 A 2
3 2000 B 3
4 2001 B 4
5 2000 C 5
6 2001 C 6
7 1990 D 7
8 1990 E 8
9 1991 E 9
10 1993 E 10
11 1993 E 11
12 1994 E 12
我只对存在3年以上的ID感兴趣。我可以笨拙地逐步检查每个ID
for id in list(Set(df['ID'])):
if len(list(Set(df[df['ID']==id]['Year']))) >= 3:
df2 = df2.append( df[df['ID']==id] )
Year ID Value
8 1990 E 8
9 1991 E 9
10 1993 E 10
11 1993 E 11
12 1994 E 12
但似乎应该有一个更简单的方法。
(df.groupby(['ID'])
.filter(lambda x: x['Year'].nunique()>=3))
产量
Year ID Value
8 1990 E 8
9 1991 E 9
10 1993 E 10
11 1993 E 11
12 1994 E 12
[5 rows x 3 columns]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句