Сделайте это вместо:
df.loc['2016-10-29':, 'temperature'] = 20.0
Добавьте селектор для индекса и столбца, который вы пытаетесь обновить, в одном вызове .loc, иначе нет гарантии, что исходный DataFrame будет обновлен.Это также применимо к обновлению существующего столбца.
При добавлении нового столбца вам не нужно использовать .copy()
.Итак, df['temperature_f'] = df['temperature']
достаточно.