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

Почему вам всегда следует копировать фреймы данных Pandas при выборе подмножеств?

Опубликовано 19 ноября 2024 г.
Просматривать:569

Why Should You Always Copy Pandas DataFrames When Selecting Subsets?

Понимание важности копирования фреймов данных в Pandas

В Pandas при выборе части фрейма данных обычной практикой является использование метода '.copy() ' метод для создания копии исходного фрейма данных. Такой подход гарантирует, что любые изменения, внесенные в подмножество, не повлияют на родительский фрейм данных.

Зачем делать копию?

По умолчанию индексирование фрейма данных возвращает просмотр исходного фрейма данных, а не копии. Это означает, что любые изменения, внесенные в подмножество, будут напрямую влиять на родительский фрейм данных. Чтобы сохранить целостность родительского фрейма данных, важно создать копию с помощью метода '.copy()'.

Последствия отказа от копирования

Учитывайте следующий фрагмент кода:

df = pd.DataFrame({'x': [1, 2]})
df_sub = df.iloc[0:1]
df_sub.x = -1

В этом примере df_sub — это представление df. В результате установка df_sub.x в значение -1 также изменяет df.x:

print(df)
   x
0 -1
1  2

Преимущества копирования

Копирование фреймов данных гарантирует, что родительский фрейм данных останется нетронутым. Это особенно важно, когда с фреймом данных выполняется несколько операций и крайне важно сохранить исходные данные для последующего анализа или сравнения.

df_sub_copy = df.iloc[0:1].copy()
df_sub_copy.x = -1

print(df)
   x
0  1
1  2

В этом измененном фрагменте кода df_sub_copy является копией df. В результате изменение df_sub_copy.x не влияет на df.

Примечание: Важно отметить, что поведение индексации фреймов данных изменилось в новых версиях Pandas. В Pandas 1.0 и более ранних версиях индексация фрейма данных по умолчанию возвращает копию. Однако в Pandas 1.1 и более поздних версиях индексация возвращает представление. Чтобы обеспечить единообразное поведение в разных версиях, рекомендуется всегда использовать метод «.copy()» при создании подмножеств фреймов данных.

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3