Comment avec pandas supprimer d'une data frame les lignes avec des valeurs en dessous et au dessus d'une valeur minimum et maximum ?

Published: 03 octobre 2019

DMCA.com Protection Status

Exemple de solution sur comment supprimer avec pandas des lignes en utilisant une valeur minimum et maximum en utilisant la fonction between(). Soit le data frame suivant:

>>> import pandas as pd 
>>> data = {'Label':['a','b','c','d','e','f','g','h','i','j'],'Value 1':[0,9,3,7,2,6,5,9,6,3], 'Value 2':[56,34,99,11,78,89,34,94,65,36]} 
>>> df = pd.DataFrame(data)
>>> df
  Label  Value 1  Value 2
0     a        0       56
1     b        9       34
2     c        3       99
3     d        7       11
4     e        2       78
5     f        6       89
6     g        5       34
7     h        9       94
8     i        6       65
9     j        3       36

Si on veut supprimer les lignes dont les valeurs de la colonne "Value 1" ne sont pas entre les valeurs vmin et vmax suivantes:

>>> vmin = 3
>>> vmax = 7
>>> column = 'Value 1'

on peut utiliser la fonction between:

>>> df = df[df[column].between(vmin, vmax)]
>>> df
  Label  Value 1  Value 2
2     c        3       99
3     d        7       11
5     f        6       89
6     g        5       34
8     i        6       65
9     j        3       36

Si on veut maintenant supprimer les lignes dont les valeurs de la colonne "Value 2" ne sont pas entre les valeurs vmin et vmax suivantes:

>>> vmin = 20
>>> vmax = 80
>>> column = 'Value 2'

donne

>>> df = df[df['Value 2'].between(20, 80)]
>>> df
  Label  Value 1  Value 2
6     g        5       34
8     i        6       65
9     j        3       36

Références