0

I want to drop rows with countries that have less than 5 rows in dataset, how can I do it?

My dataframe example:

date    country_code    media_source    ltv(sum)    cost
4713    2020-09-26  AE  Facebook Ads    292.61799   38.24
4714    2020-09-26  AT  Facebook Ads    214.61517   8.06
4715    2020-09-26  AU  ByteDance        0.00000    56.62
4716    2020-09-26  AU  Facebook Ads    655.46586   85.04
4717    2020-09-26  BB  Facebook Ads    0.00000 0.58
4718    2020-09-26  BE  Facebook Ads    210.68964   10.25
4719    2020-09-26  BH  Facebook Ads    156.08376   4.45
4720    2020-09-26  BM  Facebook Ads    31.20894    0.56
4721    2020-09-26  BR  Facebook Ads    1080.77067  84.83
4722    2020-09-26  BS  Facebook Ads    19.51047    1.83
4723    2020-09-26  CA  ByteDance       19.51047    35.93
4724    2020-09-26  CA  Facebook Ads    117.06282   113.63
4725    2020-09-26  CH  Facebook Ads    156.08376   28.95
4726    2020-09-26  CL  Facebook Ads    331.75611   11.16
4727    2020-09-26  CO  Facebook Ads    0.00000 8.07
4728    2020-09-26  CR  Facebook Ads    58.53141    3.69
4729    2020-09-26  CY  Facebook Ads    39.02094    5.36
4730    2020-09-26  CZ  Facebook Ads    214.61517   12.20
4731    2020-09-26  DE  Facebook Ads    300.44952   28.61
4732    2020-09-26  EC  Facebook Ads    58.53141    2.99
4733    2020-09-26  ES  Facebook Ads    468.25128   19.26
4734    2020-09-26  FI  Facebook Ads    136.57329   5.01
4735    2020-09-26  FR  Facebook Ads    253.63611   15.36
4736    2020-09-26  GH  Facebook Ads    97.63047    17.31
  • Does this answer your question? [Python: Removing Rows on Count condition](https://stackoverflow.com/questions/49735683/python-removing-rows-on-count-condition) – Vitalizzare May 26 '22 at 19:32

1 Answers1

0

You can try groupby and filter

out = df.groupby('country_code').filter(lambda df: len(df) >= 5)
Ynjxsjmh
  • 28,441
  • 6
  • 34
  • 52