web-dev-qa-db-fra.com

Supprimer les trois premières lignes d'un cadre de données dans pandas

Je dois supprimer les trois premières lignes d'une base de données dans des pandas.

Je sais que df.ix[:-1] supprimerait la dernière ligne, mais je ne vois pas comment supprimer les n premières lignes.

130

Utilisez iloc :

df = df.iloc[3:]

vous donnera un nouveau df sans les trois premières lignes.

181
bdiamante

Je pense qu'une façon plus explicite de faire cela est d'utiliser drop.

La syntaxe est la suivante:

df.drop(label)

Et comme l'a souligné @tim et @ChaimG, cela peut être fait sur place:

df.drop(label, inplace=True)

Une façon de mettre cela en œuvre pourrait être:

df.drop(df.index[:3], inplace=True)

Et une autre utilisation "en place":

df.drop(df.head(3).index, inplace=True)
92
drexiya
df = df.iloc[n:]

n supprime les n premières lignes.

7
176coding
df.drop(df.index[[0,2]])

Les pandas utilisent une numérotation à base zéro, donc 0 est la première ligne, 1 la deuxième ligne et 2 la troisième.

4
Anupam khare

Vous pouvez utiliser le découpage python, mais notez qu'il n'est pas en place.

In [15]: import pandas as pd
In [16]: import numpy as np
In [17]: df = pd.DataFrame(np.random.random((5,2)))
In [18]: df
Out[18]:
          0         1
0  0.294077  0.229471
1  0.949007  0.790340
2  0.039961  0.720277
3  0.401468  0.803777
4  0.539951  0.763267

In [19]: df[3:]
Out[19]:
          0         1
3  0.401468  0.803777
4  0.539951  0.763267
4
beardc

Un moyen simple consiste à utiliser tail (-n) pour supprimer les n premières lignes

df=df.tail(-3)

3
mxia