Python | Pandas dataframe.first_valid_index()
Last Updated :
19 Nov, 2018
Python is a great language for doing data analysis, primarily because of the fantastic ecosystem of data-centric python packages.
Pandas is one of those packages and makes importing and analyzing data much easier.
Pandas
dataframe.first_valid_index()
function returns index for first non-NA/null value in the dataframe. In the case of Pandas Series, the first non-NA/null index is returned. In the case of pandas Dataframe, that index is returned which has even a single non-NA/null value.
Note : If all elements are non-NA/null, returns None. Also returns None for empty DataFrame
Syntax: DataFrame.first_valid_index()
Returns : scalar : type of index
Example #1: Use
first_valid_index()
function to find the first non-NA/null index in the dataframe.
Python3
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[None, None, 2, 4, 5],
"B":[5, None, None, 44, 2],
"C":[None, None, None, 1, 5]})
# Print the dataframe
df

Now apply the
first_valid_index()
function.
Python3 1==
# applying first_valid_index() function
df.first_valid_index()
Output :

Notice, there is
non-Na
value in the second column of the first row. so the output is 0, indicating that 0th index contain a
non-NA
value.
Example #2: Use
first_valid_index()
function to find the first non-NA/null index in the dataframe.
Python3
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[None, None, 2, 4, 5],
"B":[None, None, None, 44, 2],
"C":[None, None, None, 1, 5]})
# applying first_valid_index() function
df.first_valid_index()
Output :

As we can see in the dataframe, the first two rows are having only
NA
values. so, the output is 2
Example #3: Use
first_valid_index()
function to find the first non-NA/null index in a series.
Python3
# importing pandas as pd
import pandas as pd
# Creating the series
ser = pd.Series([None, None, "sam", "alex", "sophia", None])
# Print the series
ser

Now apply the
first_valid_index()
function.
Python3 1==
# applying first_valid_index() function
ser.first_valid_index()
Output :

Output is 2 because 0th and 1st indexes are having null value.