Delete the first three rows of a dataframe in pandas

Each Answer to this Q is separated by one/two green lines.

I need to delete the first three rows of a dataframe in pandas.

I know df.ix[:-1] would remove the last row, but I can’t figure out how to remove first n rows.

Use iloc:

df = df.iloc[3:]

will give you a new df without the first three rows.

I think a more explicit way of doing this is to use drop.

The syntax is:


And as pointed out by @tim and @ChaimG, this can be done in-place:

df.drop(label, inplace=True)

One way of implementing this could be:

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

And another “in place” use:

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

df = df.iloc[n:]

n drops the first n rows.

A simple way is to use tail(-n) to remove the first n rows



Pandas uses zero based numbering, so 0 is the first row, 1 is the second row and 2 is the third row.

You can use python slicing, but note it’s not in-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
          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:]
          0         1
3  0.401468  0.803777
4  0.539951  0.763267

inp0= pd.read_csv(“bank_marketing_updated_v1.csv”,skiprows=2)

or if you want to do in existing dataframe

simply do following command

There is a simple way to implement that by the drop command.

df = df.drop(3)

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.