input: Write a function to interpolate missing data points in a DataFrame.
  assert interpolate_missing_data(pd.DataFrame({'x': [0,1,3,4,5],'y': [1,2,4,8,16]})).equals(pd.DataFrame({'x': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], 'y': [1.0, 2.0, 3.0, 4.0, 8.0, 16.0]}))
  assert interpolate_missing_data(pd.DataFrame({'x': [0,2,5],'y': [1,9,25]})).equals(pd.DataFrame({'x': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], 'y': [1.0, 5.0, 9.0, 15.0, 21.0, 25.0]}))
  assert interpolate_missing_data(pd.DataFrame({'x': [0,3],'y': [1,27]})).equals(pd.DataFrame({'x': [0.0, 1.0, 2.0, 3.0], 'y': [1.0, 9.0, 17.0, 27.0]}))
output: def interpolate_missing_data(df):
      df = df.set_index('x').reindex(range(int(df['x'].min()), int(df['x'].max()) + 1)).interpolate().reset_index()
      return df