df.merge(how='right', on='A', right=pd.DataFrame({'A': np.arange(df.iloc[0]
    ['A'], df.iloc[-1]['A'] + 0.5, 0.5)})).sort(columns='A').reset_index(
    ).drop(['index'], axis=1)
Missing data, insert rows in Pandas and fill with NAN