Exemples de comment supprimer une ligne donnée d'une dataframe avec pandas ?
Supprimer une ligne donnée d'une dataframe (Exemple 1)
Créons une dataframe avec pandas :
import pandas as pd
import numpy as np
data = np.random.randint(5, size=(4,3))
df = pd.DataFrame(data=data,columns=['C1','C2','C3'])
renvoie par exemple :
C1 C2 C3
0 3 3 1
1 0 2 4
2 0 4 4
3 4 2 0
Pour supprimer la ligne avec index = 2 par exemple, une solution consiste à utiliser drop() (Notez que 0 signifie axis = 0 ici car drop() peut également être utilisé pour supprimer des colonnes):
df.drop([2], 0, inplace=True)
donne alors
C1 C2 C3
0 3 3 1
1 0 2 4
3 4 2 0
Note: drop peut également être utilisé pour supprimer plusieurs lignes. Par exemple, pour supprimer les lignes 0 et 2 :
df.drop([0,2], 0, inplace=True)
donne
C1 C2 C3
1 0 2 4
3 4 2 0
Supprimer une ligne donnée d'une dataframe (Exemple 2)
Un autre exemple
import pandas as pd
import numpy as np
data = np.random.randint(5, size=(4,3))
df = pd.DataFrame(data=data,columns=['C1','C2','C3'], index=['A','B','C','D'])
avec index = ['A','B','C','D']
C1 C2 C3
A 3 3 1
B 0 2 4
C 0 4 4
D 4 2 0
Pour supprimer la ligne avec index = B :
df.drop(['B'],0, inplace=True)
donne alors
C1 C2 C3
A 3 3 1
C 0 4 4
D 4 2 0
Supprimer les lignes où une condition est vraie
Un autre exemple utile consiste à supprimer les lignes où une condition est vraie
import pandas as pd
import numpy as np
data = np.random.randint(5, size=(4,3))
df = pd.DataFrame(data=data,columns=['C1','C2','C3'])
donne
C1 C2 C3
0 3 3 1
1 0 2 4
2 0 4 4
3 4 2 0
Supposons que nous voulions supprimer les lignes où la colonne C1 = 0. Pour ce faire, trouvons d'abord les index où la condition est vraie :
index_list = df.index[ df.loc[:,'C1'] == 0]
print(index_list)
donne:
Int64Index([1, 2], dtype='int64')
Nous pouvons alors utiliser drop() pour supprimer ces lignes :
df.drop(index_list,0, inplace=True)
donne ici:
C1 C2 C3
0 3 3 1
3 4 2 0