Как заменить разделы базы данных панд на Python?

#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