2 votes

Une fonction comme index.get_loc, mais pour des valeurs multiples

J'ai le cadre de données suivant :

df = pd.DataFrame({'color': ['Yellow', 'Green', 'Red', 'Orange'], 'weight': [0.5, 4, 1, 10]}, index = ['Banana','Melon','Apple','Pumpkin'])

qui se présente comme suit :

Banana  Yellow     0.5
Melon    Green     4.0
Apple      Red     1.0
Pumpkin  Orange    10.0

Ce que j'essaie de faire, c'est d'accéder aux emplacements des entiers d'un sous-ensemble de "Banane", "Melon", "Pomme", "Citrouille". Je sais que pandas.index.get_loc est un moyen de le faire pour un seul élément de l'index. Par exemple : df.index.get_loc('Apple') revient 2. Cependant, j'aimerais le faire pour multiples en une seule fois. J'ai essayé, entre autres, df.index.get_loc('Apple', 'Pumpkin'), en espérant obtenir la liste [2,3], mais cela a donné l'erreur suivante : ValueError: Invalid fill method. Expecting pad (ffill), backfill (bfill) or nearest. Got pumpkin

Existe-t-il une fonction qui me permette d'obtenir plusieurs positions entières à la fois ?

3voto

W-B Points 94428

Essayez avec get_indexer qui accepte une liste comme entrée

df.index.get_indexer(['Apple','Pumpkin'])
Out[104]: array([2, 3], dtype=int32)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X