Удалите первые три строки фрейма данных в pandas


Мне нужно удалить первые три строки фрейма данных в pandas.

Я знаю df.ix[:-1] удалить последнюю строку, но я не могу выяснить, как удалить первые n строк.

5 94

5 ответов:

использовать iloc как вы используете ix, но применить другой срез...

df2 = df1.iloc[3:] #edited since .ix is now deprecated.

даст вам новый df без первых трех строк.

Я думаю, что более явный способ сделать это-использовать drop.

синтаксис:

df.drop(label)

и как указано @tim и @ChaimG, это можно сделать на месте:

df.drop(label, inplace=True)

один из способов реализации этого может быть:

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

и еще один" на месте " использовать:

df.drop(df.head(3).index, inplace=True)

вы можете использовать Python нарезки, но обратите внимание, что это не на месте.

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
df=df.iloc[n:]

N-это первые n строк

df.drop(df.index[[0,2]])

панды используют нулевую нумерацию, поэтому 0-это первая строка, 1-вторая строка и 2-Третья строка.