选择对所有年份进行观察的行

时间:2017-04-28 12:49:09

标签: python pandas

我有一个大学学生的数据集,我想保留那些没有退学的学生的观察结果,即多年来对所有学生的观察 例如:

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

我需要像名字一样计算值,如果它小于4,则丢弃。怎么做?

1 个答案:

答案 0 :(得分:2)

我认为你需要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