python - 选择所有年份都有观察值的行 python

标签 python pandas

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

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

关于python - 选择所有年份都有观察值的行 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680662/

相关文章:

python - 使用返回列表的 fixture 参数化 pytest 函数的最佳方法是什么?

javascript - 为什么我的双引号作为单引号收到?

python - 将列表附加到 Pandas DataFrame 输出的顶部

python - 如何将 numpy 数组附加到 pandas 数据框

python - 迭代 EOD .csv 以在每个文件中创建历史运行高点、低点

python - Groupby nunique 与 unique 与分类数据

python - Pandas 转换 float 删除指数

python - 使用 django channel 保存数据库更改

python - groupby 并删除 pandas 中的配对记录

python - 在 Seaborn 中绘图时 Python 代码出错