IIU C вы можете расширить свой DF, используя reindex
день за днем, cal c '3_day_change', используя .shift()
и отбросив все строки, где close нулевые
df['date'] = pd.to_datetime(df['date'])
df.set_index('date',inplace=True)
df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq='D'))
df['3day_before_change'] = df['close'] / df['close'].shift(3)
df.loc[df['close'].notnull()]
теоретически он должен работать с данными в изображении, но я не смог воспроизвести ответ, потому что ваши данные не в текстовом формате