По моему мнению, должно быть 2 решения, также добавлено больше столбцов к образцу данных:
df = pd.DataFrame({'Data': [0.1,0.2,0.4,0.7],
'A':list('abcd'),
'B':[4,5,6,9]})
print (df)
Data A B
0 0.1 a 4
1 0.2 b 5
2 0.4 c 6
3 0.7 d 9
Создать индекс по столбцу Data
и использовать DataFrame.reindex
:
arr = np.arange(df.Data.min(),df.Data.max() + 0.1,0.1)
df1 = df.set_index('Data').reindex(arr).reset_index()
print (df1)
Data A B
0 0.1 a 4.0
1 0.2 b 5.0
2 0.3 NaN NaN
3 0.4 c 6.0
4 0.5 NaN NaN
5 0.6 NaN NaN
6 0.7 NaN NaN
Или создать помощника DataFrame
и DataFrame.merge
с левым соединением:
df1 = pd.DataFrame({'Data':arr}).merge(df, how='left')
print (df1)
Data A B
0 0.1 a 4.0
1 0.2 b 5.0
2 0.3 NaN NaN
3 0.4 c 6.0
4 0.5 NaN NaN
5 0.6 NaN NaN
6 0.7 NaN NaN