Home > Software engineering >  How to calculate number of rows between 2 indexes of pandas dataframe
How to calculate number of rows between 2 indexes of pandas dataframe

Time:10-23

I have the following Pandas dataframe in Python:

import pandas as pd
d = {'col1': [1, 2, 3, 4, 5], 'col2': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data=d)
df.index=['A', 'B', 'C', 'D', 'E']
df

which gives the following output:

    col1    col2
A   1       6
B   2       7
C   3       8
D   4       9
E   5       10

I need to write a function (say the name will be getNrRows(fromIndex) ) that will take an index value as input and will return the number of rows between that given index and the last index of the dataframe.

For instance:

nrRows = getNrRows("C")
print(nrRows)
> 2

Because it takes 2 steps (rows) from the index C to the index E.

How can I write such a function in the most elegant way?

CodePudding user response:

For your information we have built-in function get_indexer_for

len(df)-df.index.get_indexer_for(['C'])-1
Out[179]: array([2], dtype=int64)

CodePudding user response:

The simplest way might be

len(df[row_index:]) - 1
  • Related