# Python Pandas - Fill NaN with Polynomial Interpolation

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