Home > Net >  What is the difference between specifying the rows vs slice in iloc?
What is the difference between specifying the rows vs slice in iloc?

Time:12-18

What is the difference between specifying the rows vs slice in the following example:

df.iloc[[3, 4], 1]

vs

df.iloc[3:4, 1]

CodePudding user response:

Slice a:b implies consecutive advancing/following of positions, while specifying positions as a list allows indexing by arbitrary sequence like [3, 5, 4, 1].

CodePudding user response:

The difference is also in performance. slice by indexes works many times faster. For example

import pandas as pd
import numpy as np

df = pd.DataFrame({"X":np.random.random((1000,)),
                  })
%%timeit
df.iloc[range(100),:]
Out:
    177 µs ± 5.1 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
%%timeit
df.iloc[:100, :]
Out: 
    22.4 µs ± 828 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
  • Related