Привет. Итак, у меня есть два таких фрейма данных:
df_1:
EntryDate Open
0 2006-01-16 5
1 2006-01-17 NaN
2 2006-01-18 NaN
3 2006-01-19 5
4 2006-01-20 NaN
. .......... ...
. .......... ...
df_2:
EntryDate close
0 2006-01-16 5
1 2006-01-17 10
2 2006-01-18 15
3 2006-01-19 20
4 2006-01-20 25
. .......... ...
. .......... ...
df_1 имеет дублированные строки, которые имеют одинаковую EntryDate, в то время как df_2 имеет уникальные строки. Я хочу сделать следующее:
- создать еще один столбец в df_1, сопоставив EntryDate из обоих фреймов данных, и его значением будет значение закрытия, в котором он совпадает.
- Для дублированных строк значение их закрытия должно иметь такое же значение закрытия
- Для значений NaN в столбце Open я хочу изменить их на закрытие предыдущего дня.
поэтому вывод должен быть
df_1:
EntryDate Open Close
0 2006-01-16 5 5
1 2006-01-17 5 10
2 2006-01-18 10 15
3 2006-01-19 15 20
4 2006-01-20 20 25
. .......... ... ...
. .......... ... ...
То, что я пробовал для чисел 1 и 2, таково:
df_1['close'] = df_2.Close.loc[(df_2.EntryDate.isin(df_1['EntryDate']))]
df_1.loc[df_1.duplicated(['EntryDate'],keep='first')] = df_1.close.reindex(pd.RangeIndex(df_1.close.index.max() + 1)).ffill()
Однако, когда я пробовал это, df_1.close возвращает NaN ценности. Буду признателен за чью-то помощь.