python - 更改一个数据框也会更改其副本

标签 python pandas

无法想出更好的标题,所以我们就到这里了。我正在运行以下代码:

dow_23457 = df
dow_23457 = dow_23457.set_index('date', inplace = True)
dow_23457 = dof_2345i.shift(24)
dow_23457 = dow_23457.reset_index()

据我了解,我首先制作“df”的副本,然后更改副本。让我感到困惑的是,当我运行第二行时,“日期”列甚至在“df”数据框中也成为索引。不过,以下两行的更改仅适用于复制的 (dow_23457) 数据帧。怎么会发生这种事?

最佳答案

I first make a copy of 'df' and then I change the copy

不!当您执行 dow_23457 = df 时,您正在使 dow_23457 查看相同的底层对象 df 一直在查看在。直接赋值不会复制语言中的数据。

你需要明确:

dow_23457 = df.copy()

这使得 dow_23457 现在看到一个完全不同的、新创建的数据框对象,它独立于 df 所看到的内容。 (好吧,除了你在数据框的单元格中有一些列表、字典等,它们会阻碍复制过程......但你首先不应该将它们放在数据框的单元格中!)


有关“命名”主题的更多信息,您可能需要查看 here (它还有视频形式和纯文本形式)。

关于python - 更改一个数据框也会更改其副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74065403/

相关文章:

python - pandas 中的 tz_convert 不适用于印度的任何城市

python - 如何防止堆栈对索引进行排序?

python - 2个关键字之间的Scrapy xpath

javascript - 如何将指向外部营销视频的链接添加到站点主页?

python - 当某些字符串具有 UTF-8 字符时,pandas DataFrame.style.render

python - 识别 pandas 中由多列组成的组中的第一个非零元素

python - 多个输出和 numba 签名

python - 蜘蛛 IDE python 。按F5和F9运行有什么区别?

python - Seaborn 中 fiddle 图的透明面

python - 通过计算 python 中 groupby 之后的列中 0 出现的次数来获取子集