Это происходит потому, что индекс после группировки по 'LEFT PORT DATE'
является именно этим столбцом, а затем при присваивании исходному кадру данных с другим индексом возвращает NaN, вы можете использовать преобразование
data['RUN STD DEVIATION']=data.groupby('LEFT PORT DATE')['SPEED'].transform('std')
print(data)
LEFT PORT DATE SPEED RUN STD DEVIATION
0 21/10/2019 10.0 9.950042
1 21/10/2019 20.0 9.950042
2 21/10/2019 0.1 9.950042
3 20/10/2019 50.0 NaN
.
data.groupby('LEFT PORT DATE')['SPEED'].std()
возвращает серию с индексом LEFT PORT DATE
, который не совпадает с индексом фактического кадра данных. Назначение панд index based
, когда дело доходит до назначения серии.
LEFT PORT DATE
20/10/2019 NaN
21/10/2019 9.950042
Name: SPEED, dtype: float64