Панды: субиндексирующие данные: копирование и просмотр

Скажем, у меня есть фрейм данных

import pandas as pd import numpy as np foo = pd.DataFrame(np.random.random((10,5))) 

и я создаю еще один фрейм данных из подмножества моих данных:

 bar = foo.iloc[3:5,1:4] 

ли bar содержит копию этих элементов из foo ? Есть ли способ создать view этих данных? Если да, то что произойдет, если я попытаюсь изменить данные в этом представлении? Предоставляет ли Pandas какой-либо механизм копирования на запись ?

One Solution collect form web for “Панды: субиндексирующие данные: копирование и просмотр”

Ваш ответ лежит в документах pandas: return-a-view-versus-a-copy .

Всякий раз, когда в операции индексирования задействуется массив меток или булев вектор, результатом будет копия . При индексировании и нарезке одной метки / скаляра, например df.ix [3: 6] или df.ix [:, 'A'], будет возвращено представление .

В вашем примере bar представляет собой вид фрагментов foo . Если вы хотите получить копию , вы могли бы использовать метод copy . Модифицирующая bar также изменяет foo . У pandas нет механизма копирования на запись.

См. Мой пример кода ниже, чтобы проиллюстрировать:

 In [1]: import pandas as pd ...: import numpy as np ...: foo = pd.DataFrame(np.random.random((10,5))) ...: In [2]: pd.__version__ Out[2]: '0.12.0.dev-35312e4' In [3]: np.__version__ Out[3]: '1.7.1' In [4]: # DataFrame has copy method ...: foo_copy = foo.copy() In [5]: bar = foo.iloc[3:5,1:4] In [6]: bar == foo.iloc[3:5,1:4] == foo_copy.iloc[3:5,1:4] Out[6]: 1 2 3 3 True True True 4 True True True In [7]: # Changing the view ...: bar.ix[3,1] = 5 In [8]: # View and DataFrame still equal ...: bar == foo.iloc[3:5,1:4] Out[8]: 1 2 3 3 True True True 4 True True True In [9]: # It is now different from a copy of original ...: bar == foo_copy.iloc[3:5,1:4] Out[9]: 1 2 3 3 False True True 4 True True True 
  • Как создать гистограмму / гистограмму с полосой на дискретное значение?
  • как преобразовать список в базу данных pandas
  • Подсчет изменений значения в каждом столбце в кадре данных в пандах, игнорирующих изменения NaN
  • Гистограмма Pandas отфильтрованного Dataframe
  • Чтение части большого файла xlsx с помощью python
  • Pandas количество рабочих дней между DatetimeIndex и меткой времени
  • Pandas: поворот с использованием данных с несколькими индексами
  • Есть ли эквивалент pandas dplyr :: summary?
  • выберите наибольший N столбца каждой группы с группой, используя панды
  • Как обновить значение в первых N рядах по группам в многоиндексном кадре данных панд?
  • Запрос HDF5 в Pandas
  • Python - лучший язык программирования в мире.