在复制时重命名熊猫数据帧列会影响原始数据帧



我不明白为什么在使用复制命令时此重命名操作会影响原始数据帧。为什么df_copy是df的观点而不是真正的副本?我希望打印语句输出"x"而不是"y"。

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

来自文档:

请注意,在复制包含 Python 对象的对象时,深 复制将复制数据,但不会递归复制。正在更新 嵌套的数据对象将反映在深层副本中。

当您使用索引访问列时,这似乎也适用于列(正如您已经证明的那样(。

重新分配列时,行为符合预期:

df_copy.columns = ['y']
print(df.columns)
#Index([u'x'], dtype='object')

最新更新