Мне нужно пересчитать данные о запасах из ежедневного в еженедельный формат. ДАННЫЕ:
Date Open High Low Close
2007-09-17 4518.450195 4549.049805 4482.850098 4494.649902
2007-09-18 4494.100098 4551.799805 4481.549805 4546.200195
2007-09-19 4550.250000 4739.000000 4550.250000 4732.350098
2007-09-20 4734.850098 4760.850098 4721.149902 4747.549805
2007-09-21 4752.950195 4855.700195 4733.700195 4837.549805
Данные имеют некоторые пропущенные значения и были вменены с использованием SimpleImputer
Я использовал этот код для повторной выборки:
agg_dict = {'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last'}
r_df = nifty_tr.resample('W-MON').agg(agg_dict)
Мне кажется, что проблема в том, что выходной набор данных, т. е. r_df, включает в себя различные новые даты (он начинается с начала 2007 года, а не с 2007-09-17, как доступно в данных. Выходной результат содержит в основном нулевые значения с случайными значениями OUTPUT
Date Open High Low Close
2007-01-21 5021.500000 6011.950195 5001.350098 5866.450195
2007-01-28 NaN NaN NaN NaN
2007-02-04 NaN NaN NaN NaN
2007-02-11 NaN NaN NaN NaN
2007-02-18 5854.850098 5944.750000 5714.250000 5932.399902
2020-11-15 10334.299810 10545.099610 10334.000000 10458.400390
......
2020-11-22 NaN NaN NaN NaN
2020-11-29 NaN NaN NaN NaN
2020-12-06 NaN NaN NaN NaN
2020-12-13 12151.000000 12231.750000 9508.000000 9590.150391
Код, который я использовал для загрузки данных:
nifty = pd.read_csv('../Nifty.csv', index_col='Date',parse_dates=True)
nifty.drop(['Volume','Adj Close'],axis=1,inplace=True)
imputer = SimpleImputer(strategy = 'mean')
nifty_tr = pd.DataFrame(imputer.fit_transform(nifty), columns=nifty.columns, index=nifty.index)
Я не могу понять, что является причиной этого. Очень ценю любую помощь.