Почему значение ключа не меняется после того, как я внес некоторые изменения в цикл for - PullRequest
1 голос
/ 08 июля 2020

У меня есть словарная переменная OutputFrames, и я попытался заполнить NaN методами ffill и bfill df.fillna(method = 'ffill').fillna(method='bill'). Он показывает правильный результат, когда я печатаю его в формате l oop. Но когда я проверяю словарь с помощью ключа, он показывает, что ничего не изменилось. Кто-нибудь знает, почему?

Я также пробовал

chartFrame.fillna(method='ffill', inplace = True).fillna(method='bfill', inlace = True)

, потому что есть один столбец ( SBT ), заполненный пустым значением в значении key, поэтому он тоже не работает --- AttributeError: 'NoneType' object has no attribute 'fillna'.

Это видно на картинке:

введите описание изображения здесь

1 Ответ

2 голосов
/ 08 июля 2020

Когда вы делаете chartFrame = chartFrame.fillna(method = 'ffill').fillna(method='bill') внутри для l oop, вы фактически не меняете фрейм данных в OutputFrames. Вы просто присваиваете его переменной chartFrame. Печать этой переменной показывает правильный результат, но он не сохраняется.

Либо переназначьте фрейм по текущему ключу (предпочтительно):

OutputFrames[key] = chartFrame.fillna(method = 'ffill').fillna(method='bfill')

Или используйте inplace=True без связывания операции. Когда вы выполняете операцию на месте, фрейм данных изменяется на месте и ничего не возвращается. Это в основном приводит к None.nafill(), что вызывает указанную ошибку.

chartFrame.fillna(method='ffill', inplace = True)
chartFrame.fillna(method='bfill', inplace = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...