Допустим, у меня есть кадр данных pandas df
, и я хочу интерполировать пропущенные значения.
Дело 1
В первом случае я пытаюсь интерполировать весь фрейм данных df
. Но почему-то я получил предупреждающее сообщение, и оно не удалось.
[In] interpolateList = [x for x in xlsx_df.columns if x not in ['Date', 'Time', 'DateTime', 'Year', 'YearMonth']]
# interpolation
[In] xlsx_df[interpolateList].interpolate(method='linear', inplace=True) # axis: default 0, which means col by col
print('Whether there are any NaN value: ', xlsx_df.isnull().values.any())
[Out] Whether there are any NaN value: True
/ дом / usrname / .local / Библиотека / python3.6 / сайт-пакеты / ipykernel_launcher.py: 4:
SettingWithCopyWarning: значение пытается быть установлено для копии
срез из фрейма данных
См. Предостережения в документации:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
после удаления cwd из sys.path.
Дело 2
В другом случае я пытаюсь интерполировать каждый столбец (что означает, что это серия панд), и он работает, как я ожидаю.
Я использовал инструмент визуализации для двойной проверки результата, и он выглядит великолепно.
[In] interpolateList = [x for x in xlsx_df.columns if x not in ['Date', 'Time', 'DateTime', 'Year', 'YearMonth']]
# interpolation
[In] for col in interpolateList:
xlsx_df[col].interpolate(method='linear', inplace=True) # axis: default 0, which means col by col
print('Are there any NaN value: ', xlsx_df.isnull().values.any())
[Out] Whether there are any NaN value: False
Мой вопрос
Почему случай 1 терпит неудачу? Это потому, что я неправильно выбираю столбцы данных?
Ссылки