df = df.set_index(keys='A', drop=False).reindex(np.arange(df.iloc[0]['A'], 
    df.iloc[-1]['A'] + 0.5, 0.5))
df.reset_index(inplace=True)
df['A'] = df['index']
df.drop(['A'], axis=1, inplace=True)
df.reset_index().drop(['level_0'], axis=1)
Missing data, insert rows in Pandas and fill with NAN