Переименование столбца данных в кадре pandas при копировании влияет на исходный кадр данных - PullRequest
0 голосов
/ 28 мая 2018

Я не понимаю, почему эта операция переименования влияет на исходный фрейм данных, когда используется команда копирования.Почему df_copy является представлением df, а не копией?Я ожидаю, что оператор print выведет 'x', а не 'y'.

df = pandas.DataFrame({'x': [0, 1]})
df_copy = df.copy(deep=True)
df_copy.columns.values[0] = 'y'
print(df.columns)

1 Ответ

0 голосов
/ 28 мая 2018

Из документов :

Обратите внимание, что при копировании объекта, содержащего объекты Python, глубокая копия будет копировать данные, но не будет делать это рекурсивно.Обновление вложенного объекта данных будет отражено в глубокой копии.

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

При переназначении столбцов поведение соответствует ожидаемому:

df_copy.columns = ['y']
print(df.columns)
#Index([u'x'], dtype='object')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...