Pandas DataFrame interpolate() Method | Pandas Method
Last Updated :
02 Feb, 2024
Python is a great language for 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.
Python Pandas interpolate() method is used to fill NaN values in the DataFrame or Series using various interpolation techniques to fill the missing values rather than hard-coding the value.
Example:
Python3
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
})
df.interpolate()
print(df)
Output:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12
Syntax
Syntax: DataFrame.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None, downcast=None, **kwargs)
Parameters :
- method : {‘linear’, ‘time’, ‘index’, ‘values’, ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘barycentric’, ‘krogh’, ‘polynomial’, ‘spline’, ‘piecewise_polynomial’, ‘from_derivatives’, ‘pchip’, ‘akima’}
- axis : 0 fill column-by-column and 1 fill row-by-row.
- limit : Maximum number of consecutive NaNs to fill. Must be greater than 0. l
- imit_direction : {‘forward’, ‘backward’, ‘both’}, default ‘forward’
- limit_area : None (default) no fill restriction. inside Only fill NaNs surrounded by valid values (interpolate). outside Only fill NaNs outside valid values (extrapolate). If limit is specified, consecutive NaNs will be filled in this direction.
- inplace : Update the NDFrame in place if possible.
- downcast : Downcast dtypes if possible.
- kwargs : keyword arguments to pass on to the interpolating function.
Returns : Series or DataFrame of same shape interpolated at the NaNs
Examples
Let's look at some examples of the interpolate method of the Pandas library to fill NaN values in DataFrame or Series:
Example 1:
Use the interpolate() function to fill in the missing values using the linear method.
Python3
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[None, 2, 54, 3, None],
"C":[20, 16, None, 3, 8],
"D":[14, 3, None, None, 6]})
# Print the dataframe
df

Let's interpolate the missing values using the Linear method. Note that Linear method ignore the index and treat the values as equally spaced.
Python3
# to interpolate the missing values
df.interpolate(method ='linear', limit_direction ='forward')
Output :

As we can see in the output, values in the first row could not get filled as the direction of filling of values is forward and there is no previous value that could have been used in interpolation.
Example 2:
Use the interpolate() function to interpolate the missing values in the backward direction using the linear method and putting a limit on the maximum number of consecutive Na values that could be filled.
Python3
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[None, 2, 54, 3, None],
"C":[20, 16, None, 3, 8],
"D":[14, 3, None, None, 6]})
# to interpolate the missing values
df.interpolate(method ='linear', limit_direction ='backward', limit = 1)
Output :

Notice the fourth column, only one missing value has been filled as we have put the limit to 1. The missing value in the last row could not be filled as no row exists after that from which the value could be interpolated.
Similar Reads
Pandas DataFrame itertuples() Method itertuples() is a method that is used to iterate over the rows and return the values along with attributes in tuple format. It returns each row as a lightweight namedtuple, which is faster and more memory-efficient than other row iteration methods like iterrows(). Let us consider one sample example.
7 min read
Pandas DataFrame iterrows() Method iterrows() method in Pandas is a simple way to iterate over rows of a DataFrame. It returns an iterator that yields each row as a tuple containing the index and the row data (as a Pandas Series). This method is often used in scenarios where row-wise operations or transformations are required. Exampl
4 min read
Pandas DataFrame.loc[] Method Pandas DataFrame is a two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns). Arithmetic operations align on both row and column labels. It can be thought of as a dict-like container for Series objects. This is the primary data structure o
6 min read
Methods to Round Values in Pandas DataFrame There are various ways to Round Values in Pandas DataFrame so let's see each one by one: Let's create a Dataframe with 'Data Entry' Column only: Code: Python3 # import Dataframe class # from pandas library from pandas import DataFrame # import numpy library import numpy as np # dictionary Myvalue =
3 min read
Efficient methods to iterate rows in Pandas Dataframe When iterating over rows in a Pandas DataFrame, the method you choose can greatly impact performance. Avoid traditional row iteration methods like for loops or .iterrows() when performance matters. Instead, use methods like vectorization or itertuples(). Vectorized operations are the fastest and mos
5 min read
Pandas DataFrame.to_sparse() Method Pandas DataFrame is a two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns). Arithmetic operations align on both row and column labels. It can be thought of as a dict-like container for Series objects. This is the primary data structure o
2 min read
Pandas DataFrame take() Method Python is a great tool for data analysis, primarily because of the fantastic ecosystem of data-centric Python packages like Pandas which make analyzing data much easier. Pandas take() function returns elements on the given indices, along an axis. This means that we are not indexing according to actu
3 min read
Pandas DataFrame quantile() Method | Find Quantile Values Python is a great language for data analysis, primarily because of the fantastic ecosystem of data-centric Python packages. Pandas is one of those packages, making importing and analyzing data much easier. Pandas quantile() function returns values at the given quantile over the requested axis. Not
2 min read
Python | Pandas dataframe.insert() Pandas insert method allows the user to insert a column in a data frame or series(1-D Data frame). A column can also be inserted manually in a data frame by the following method, but there isn't much freedom here. For example, even column location can't be decided and hence the inserted column is al
8 min read
Pandas DataFrame round() Method | Round Values to Decimal Python is a great language for data analysis, primarily because of the fantastic ecosystem of data-centric Python packages. Pandas is one of those packages, making importing and analyzing data much easier. Pandas round() function rounds a DataFrame value to a number with given decimal places. This
2 min read