#python #pandas #dataframe
#python #панды #фрейм данных
Вопрос:
Это должно быть супер очевидно, но я не смог найти ответ в Интернете:
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df2 = df
del df
Как переименовать df
в df2
без создания копии и удаления оригинала?
Ответ №1:
Вы уже сделали то, что хотели.
Эта строка
df2 = df
создает копию ссылки df
, чтобы обе переменные указывали на один и тот же фрейм данных. Он не копирует фрейм данных. Чтобы проверить это:
>>> df2 is df
True
После этого фрейм данных del df
не удаляется, а удаляется переменная, указывающая на него.
Комментарии:
1. все еще нет способа переименовать переменную?
2. будет сделано, но вы быстро ответили 😉
3. Вы не можете переименовать переменную Python. Для этого нет причин. Вы просто создаете новую переменную, которая указывает на тот же фрейм данных, и удаляете старую (или ждете, пока она выйдет из области видимости, что одно и то же). Если бы вы могли переименовать переменную, которая внезапно сделала бы другой код в том же модуле, который знает о старом имени, недействительным.
4. Я понимаю. Исходя из
Matlab
этого, я привык много думать о переменных рабочей области и хотел бы сохранить это пространство «чистым»5. @user140259 Иметь 2 имени, которые ссылаются на один и тот же объект, — это не то же самое, что иметь 2 имени, которые ссылаются на разные объекты. С 2 различными объектами, даже если один начинается как идентичная копия другого, эта ситуация может измениться. При использовании только одного объекта не имеет значения, какое имя вы используете для изменения этого объекта: другое имя будет отражать изменение.