Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Я думаю, что более явный способ сделать это - использовать 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)

Ответ 3

Вы можете использовать нарезку 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

Ответ 4

df=df.iloc[n:]

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

Ответ 5

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

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