Сохранять только строки, повторяющиеся более четырех раз в столбце pandas фрейма данных - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы сохранить только строки, повторяющиеся более четырех раз в столбце pandas фрейма данных. Ниже приведен образец фрейма данных и желаемый результат. Может ли кто-нибудь помочь мне с этим? Любая помощь будет оценена по достоинству! Заранее спасибо!

Текущий фрейм данных

Shop     Name     Number
Nike     Tom      45
Nike     Keith    245
Nike     Justin   876
Nike     Thomas   65
Nike     George   06
Adidas   Tom      34
Adidas   Thomas   652
Adidas   Jennifer 872
Apple    Louise   79
Apple    Matthiew 1
Apple    Vincent  652
Apple    George   85
United   Tom      62
United   Benjamin 4
United   James    23
United   Avery    96
United   Marcus   763
United   Justin   45

Я бы посмотрел на столбец «Магазин» и сохранил те, которые появлялись более четырех раз, а именно Nike и United. Мой фрейм данных очень большой и содержит более полные названия, чем эти образцы торговых марок.

Желаемый результат

Shop     Name     Number
Nike     Tom      45
Nike     Keith    245
Nike     Justin   876
Nike     Thomas   65
Nike     George   06
United   Tom      62
United   Benjamin 4
United   James    23
United   Avery    96
United   Marcus   763
United   Justin   45

1 Ответ

1 голос
/ 09 июля 2020

Используйте Series.map с Series.value_counts с фильтром Series.gt в boolean indexing:

df = df[df['Shop'].map(df['Shop'].value_counts()).gt(4)]

Или решение с GroupBy.transform:

df = df[df.groupby('Shop')['Shop'].transform('size').gt(4)]
print (df)
      Shop      Name  Number
0     Nike       Tom      45
1     Nike     Keith     245
2     Nike    Justin     876
3     Nike    Thomas      65
4     Nike    George       6
12  United       Tom      62
13  United  Benjamin       4
14  United     James      23
15  United     Avery      96
16  United    Marcus     763
17  United    Justin      45
...