for col in fit_df.columns:
    x = fit_df.index.astype(float).values
y = fit_df[col].values
params = curve_fit(func, x, y, guess)
col_params[col] = params[0]
for col in df.columns:
    x = df[pd.isnull(df[col])].index.astype(float).values
df[col][x] = func(x, *col_params[col])
print('Extrapolated data:')
print(df)
print() 
print('Data was extrapolated with these column functions:')
for col in col_params:
    print('f_{}(x) = {:0.3e} x^3 + {:0.3e} x^2 + {:0.4f} x + {:0.4f}'.format(
        col, *col_params[col]))
Extrapolate values in Pandas DataFrame