Comment sélectionner des lignes dans un DataFrame entre deux valeurs, en Python Pandas?

Je suis en train de modifier un DataFrame df pour ne contenir que les lignes pour lesquelles les valeurs dans la colonne closing_price sont entre 99 et 101, et en essayant de le faire avec le code ci-dessous.

Cependant, j'obtiens l'erreur

ValueError: La valeur de vérité d'une Série est ambigu. Utiliser un.vide, une.bool(), un.item(), un.tout() ou une.tous les()

et je me demandais si il existe un moyen de le faire sans l'aide de boucles.

df = df[(99 <= df['closing_price'] <= 101)]
  • Le problème ici est que vous ne pouvez pas comparer un scalaire avec un tableau d'où l'erreur, pour les comparaisons, vous devez utiliser les opérateurs au niveau du bit et de les placer entre parenthèses en raison de la priorité de l'opérateur
  • df.query et pd.eval sembler bons ajustements pour ce cas d'utilisation. Pour plus d'informations sur le pd.eval() famille de fonctions, de leurs caractéristiques et de cas d'utilisation, veuillez visiter Dynamique de l'Évaluation de l'Expression dans les pandas à l'aide de la mp.eval().
InformationsquelleAutor user131983 | 2015-07-24