Python 选择所有年份都有观测值的行
我有一个大学学生的数据集,我想保留那些没有退学的学生的观察结果,也就是说,所有的学生都有多年的观察结果 例如:Python 选择所有年份都有观测值的行,python,pandas,Python,Pandas,我有一个大学学生的数据集,我想保留那些没有退学的学生的观察结果,也就是说,所有的学生都有多年的观察结果 例如: Name Year Jacop 2010 Jacop 2011 Jacop 2012 Jacop 2013 Nina 2008 Nina 2009 Nina 2010 我需要像按名称计算值这样的东西,如果它小于4,则删除。怎么做?我想您需要: 另一个解决方案包括和: 我能问你们一个
Name Year
Jacop 2010
Jacop 2011
Jacop 2012
Jacop 2013
Nina 2008
Nina 2009
Nina 2010
我需要像按名称计算值这样的东西,如果它小于4,则删除。怎么做?我想您需要:
另一个解决方案包括和:
我能问你们一个问题吗,若对尼娜还有4个观测值,但实际上其中一个是空的,我还是在摆脱尼娜?我认为输出是一样的。但是,如果名字的第4行是Nina,并且年份=NaN,则不需要对其进行计数,则使用
df=df[df.groupby('name')['Year'].transform('count')>=4]
或df=df.groupby('name').filter(lambda x:x['Year'].count()>=4)
可以使用df=pd.DataFrame('Year':[2010.0、2011.0、2012.0、2013.0、np.nan、2008.0、2009.0、2010.0],“名称”:[“杰科普”、“杰科普”、“杰科普”、“杰科普”、“尼娜”、“尼娜”、“尼娜”、“尼娜”]})
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
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