Open In App

Python | Pandas dataframe.first_valid_index()

Last Updated : 19 Nov, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

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.




# 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.




# 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.




# 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.




# 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.




# applying first_valid_index() function 
ser.first_valid_index()


Output :

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



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads