Другой способ сделать это - использовать метод np.where
из модуля numpy
в сочетании с методом .between
.
Этот метод работает следующим образом:
np.where(condition, value if true, value if false)
Пример кода
cond = vol.sample_date.between('2015-11-03', '2018-06-07')
vol['hydraulic_vol'] = np.where(cond, 319779, np.nan)
Или вы можете объединить их в одну строкукода:
vol['hydraulic_vol'] = np.where(vol.sample_date.between('2015-11-03', '2018-06-07'), 319779, np.nan)
Редактировать
Я вижу, что вы новичок здесь, поэтому вот кое-что, что я должен был изучить, а также приходить на python / pandas.
Цикл на кадре данных должен быть вашим последним средством, попробуйте использовать vectorized solutions
, в этом случае .loc
или np.where
, они будут работать лучше с точки зрения скорости по сравнению с циклом.