#python #pandas
Вопрос:
Я пытаюсь заменить разные разделы базы данных определенными значениями. Обычно для этого я бы использовал .функция fillna (), однако мне нужно заменить разные части базы данных разными значениями. Вот база данных:
Base T1
Date
2020-02-25 0.962385 NaN
2020-02-26 0.958845 NaN
2020-02-27 0.915782 NaN
2020-02-28 0.911934 NaN
2020-03-02 0.951427 1.000000
2020-03-03 0.924185 0.977315
2020-03-04 0.963031 0.982521
2020-03-05 0.931019 0.946077
2020-03-06 0.915628 0.906037
2020-03-09 0.844122 0.814801
2020-03-10 0.887801 NaN
2020-03-11 0.844522 NaN
2020-03-12 0.763721 NaN
2020-03-13 0.829009 NaN
Я хотел бы заменить все значения NaN до 2020-03-02 на 1 и заменить все значения NaN после 2020-03-09 на 0,829009 . Я не совсем уверен, как это сделать. Я был бы признателен за любую помощь. Спасибо.
Ответ №1:
попробуйте использовать логическую маскировку с loc
помощью средства доступа:
df.index=pd.to_datetime(df.index)
df.loc[(df.index<'2020-03-02') amp; (df['T1'].isna()),'T1']=1
df.loc[(df.index>'2020-03-02') amp; (df['T1'].isna()),'T1']=0.829009