How to slice a Pandas Data Frame by position?

149,749

Solution 1

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.head.html?highlight=head#pandas.DataFrame.head

df2 = df.head(10)

should do the trick

Solution 2

You can also do as a convenience:

df[:10]

Solution 3

df.ix[10,:] gives you all the columns from the 10th row. In your case you want everything up to the 10th row which is df.ix[:9,:]. Note that the right end of the slice range is inclusive: http://pandas.sourceforge.net/gotchas.html#endpoints-are-inclusive

Solution 4

I can see at least three options:

Option 1

df[:10]

Option 2

Using head

df.head(10)

For negative values of n, this function returns all rows except the last n rows, equivalent to df[:-n] [Source].


Option 3

Using iloc

df.iloc[:10]

Solution 5

DataFrame[:n] will return first n rows.

Share:
149,749
turtle
Author by

turtle

Updated on July 05, 2022

Comments

  • turtle
    turtle almost 2 years

    I have a Pandas Data Frame object that has 1000 rows and 10 columns. I would simply like to slice the Data Frame and take the first 10 rows. How can I do this? I've been trying to use this:

    >>> df.shape
    (1000,10)
    >>> my_slice = df.ix[10,:]
    >>> my_slice.shape
    (10,)
    

    Shouldn't my_slice be the first ten rows, ie. a 10 x 10 Data Frame? How can I get the first ten rows, such that my_slice is a 10x10 Data Frame object? Thanks.

  • Rocketq
    Rocketq about 6 years
    this is depricated
  • Abdelsalam Hamdi
    Abdelsalam Hamdi almost 3 years
    .ix is not working u shall delete it, "df[:10]" is enough
  • Ruben
    Ruben over 2 years
    This seems to not copy the column names for me.