web-dev-qa-db-fra.com

Comment filtrer un pandas DataFrame basé sur le nombre de valeurs?

Je travaille dans Python avec un pandas DataFrame de jeux vidéo, chacun avec un genre. J'essaie de supprimer tout jeu vidéo avec un genre qui apparaît moins d'un certain nombre de fois dans le DataFrame, mais je n'ai aucune idée de la façon de procéder. J'ai trouvé ne question StackOverflow qui semble être lié, mais je ne peux pas déchiffrer la solution à tous (peut-être parce que je n'ai jamais entendu parler de R et que ma mémoire de programmation fonctionnelle est au mieux rouillée).

Aidez-moi?

33
uchuujin

Utilisez filtre groupby :

In [11]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B'])

In [12]: df
Out[12]:
   A  B
0  1  2
1  1  4
2  5  6

In [13]: df.groupby("A").filter(lambda x: len(x) > 1)
Out[13]:
   A  B
0  1  2
1  1  4

Je recommande de lire la split-combine-section de la documentation .

54
Andy Hayden