我有一个大学学生的数据集,我想保留那些没有辍学的学生的观测值,即多年来所有的观测值
例如:

Name        Year
Jacop       2010
Jacop       2011
Jacop       2012
Jacop       2013
Nina        2008
Nina        2009
Nina        2010


我需要类似按名称计数值的方法,如果它小于4,请放下。怎么做 ?

最佳答案

我认为您需要filter

df = df.groupby('Name').filter(lambda x: len(x) >= 4)
print (df)
    Name  Year
0  Jacop  2010
1  Jacop  2011
2  Jacop  2012
3  Jacop  2013


transformboolean indexing的另一种解决方案:

df = df[df.groupby('Name')['Name'].transform('size') >= 4]
print (df)
    Name  Year
0  Jacop  2010
1  Jacop  2011
2  Jacop  2012
3  Jacop  2013

10-06 00:01