«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему «настройка withcopywarning» происходит при изменении данных данных, полученных из подмножеств?

Почему «настройка withcopywarning» происходит при изменении данных данных, полученных из подмножеств?

Опубликовано в 2025-02-21
Просматривать:501

Why Does `SettingWithCopyWarning` Occur When Modifying DataFrames Derived from Subsets?

поиск виновника настройки withcopywarning

при попытке изменить dataframe с использованием .loc [row_indexer, col_indexer] = значение сохраняется. Эта проблема связана с доступом к срезам DataFrame из другого DataFrame без вызывы метода .copy ().

пошаговая ошибка воспроизведения

рассмотрим следующий код:

import pandas as pd

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]}
df = pd.DataFrame(data=d)

df['new_column'] = None
df.loc[0, 'new_column'] = 100

Первоначально, нет никаких предупреждений. Однако создание нового DataFrame на основе подмножества DF:

new_df = df.loc[df.col1 > 2]

, а затем попытка изменить новый фарм с использованием .loc:

new_df.loc[2, 'new_column'] = 100

triggers предупреждение.

] Решение: Использование .copy () для кадров данных, полученных из subset

, чтобы решить эту проблему, всегда используйте метод .copy () при создании Новый диаграмма данных, основанный на подмножестве существующего данных DataFrame. 2] .copy () new_df_copy.loc [2, 'new_column'] = 100

new_df_copy = df.loc[df.col1 > 2].copy()
new_df_copy.loc[2, 'new_column'] = 100
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3