# Python Pandas - Fill NaN with Polynomial Interpolation

PythonServer Side ProgrammingProgramming

#### Beyond Basic Programming - Intermediate Python

Most Popular

36 Lectures 3 hours

#### Practical Machine Learning using Python

Best Seller

91 Lectures 23.5 hours

#### Practical Data Science using Python

22 Lectures 6 hours

To fill NaN with Polynomial Interpolation, use the interpolate() method on the Pandas series. With that, set the “method” parameter to “polynomial”.

At first, import the required libraries −

import pandas as pd
import numpy as np

Create a Pandas series with some NaN values. We have set the NaN using the numpy np.nan

d = pd.Series([10, 20, np.nan, 65, 75, 85, np.nan, 100])


Find polynomial interpolation using the method parameter of the interpolate() method −

d.interpolate(method='polynomial', order=2)

## Example

Following is the code −

import pandas as pd
import numpy as np

# pandas series
d = pd.Series([10, 20, np.nan, 65, 75, 85, np.nan, 100])

print"Series...\n",d

# interpolate
print"\nPolynomial Interpolation...\n",d.interpolate(method='polynomial', order=2)

## Output

This will produce the following output −

Series...
0   10.0
1   20.0
2    NaN
3   65.0
4   75.0
5   85.0
6    NaN
7  100.0
dtype: float64

Polynomial Interpolation...
0   10.000000
1   20.000000
2   42.854015
3   65.000000
4   75.000000
5   85.000000
6   93.532847
7  100.000000
dtype: float64