У меня есть кадр данных, отфильтрованный от другого кадра данных.Очевидно, они имеют одинаковые столбцы и значения, но когда я применяю цикл к отфильтрованному, я получаю ошибку ключа: 0, в то время как в исходном это не проблема.Вот два кадра данных:
Оригинальный это:
ISIN ISSUE DATE MATURITY PRICE
0 AR121489 Corp 29/03/2019 29/09/2019 97.314000
1 AR714081 Corp 29/06/2019 29/12/2019 97.014500
2 AT452141 Corp 29/12/2019 29/06/2020 92.959000
3 QJ100923 Corp 29/03/2020 29/09/2020 96.696222
С этим, прочитав его из CSV, я преобразую данные для его фильтрации:
df['ISSUE DATE mod'] = df['ISSUE DATE'].apply(lambda x: dt.datetime.strptime(x,'%d/%m/%Y'))
df['MATURITY mod'] = df['MATURITY'].apply(lambda x: dt.datetime.strptime(x,'%d/%m/%Y'))
df['ISSUE DATE mod'] = df['ISSUE DATE mod'].astype('datetime64[ns]').copy()
df['MATURITY mod'] =df['MATURITY mod'].astype('datetime64[ns]').copy()
И затем я фильтрую кадр данных, чтобы получить этот:
fval = dt.date(2019,7,29)
np.datetime64(fecha_valoracion)
df2= df.loc[(tabla_info_bonos['ISSUE DATE mod'] < fval) & (df['MATURITY mod'] > fval)]
И я получаю этот кадр данных:
ISIN ISSUE DATE MATURITY ISSUE DATE mod MATURITY mod
0 AR121489 Corp 29/03/2019 29/09/2019 2019-03-29 2019-09-29
1 AR714081 Corp 29/06/2019 29/12/2019 2019-06-29 2019-12-29
Затем, если я сделаю следующую операцию с исходным кадром данныхэто работает, но не с отфильтрованным:
maturity = []
for i in range(len(df2['MATURITY'])):
maturities = pd.to_datetime(df2['MATURITY'][i]).date()
maturity.append(maturities)
OUTPUT = KeyError: 0
Я подозреваю, что проблема в фильтрующей части, но я не знаю, как ее исправить.Любая помощь с этим будет идеальной, и я буду очень благодарен