How to filter out an entire group based on condition?

Viewed 43

I want to remove groups which do not have any values for past year in the created_date column. Here is the data:

+--------+----------------+-----------------------+---------------------+
| class  |     title      |      description      |    created_date     |
+--------+----------------+-----------------------+---------------------+
| ClassA | ClassA Title 1 | Class A Description 1 | 2017-06-20 21:59:07 |
| ClassA | ClassA Title 2 | Class A Description 2 | 2015-06-20 21:59:07 |
| ClassA | ClassA Title 3 | Class A Description 3 | 2014-06-20 21:59:07 |
| ClassB | ClassB Title 1 | Class A Description 1 | 2016-06-20 21:59:07 |
| ClassB | ClassB Title 2 | Class A Description 2 | 2015-06-20 21:59:07 |
| ClassB | ClassB Title 3 | Class A Description 3 | 2014-06-20 21:59:07 |
| ClassC | ClassC Title 1 | Class C Description 1 | 2017-06-20 21:59:07 |
| ClassC | ClassC Title 2 | Class C Description 2 | 2016-06-20 21:59:07 |
| ClassC | ClassC Title 3 | Class C Description 3 | 2015-06-20 21:59:07 |
+--------+----------------+-----------------------+---------------------+

If you see in the above data only group ClassB does not have any created_date for the past year. I want to filter out the entire group ClassB so I end up with only 6 records.

I tried using filter, but not sure what to do with the grouping inside the lamda:

df.groupby(["class"]).filter(lambda group: ...))
1 Answers
Related