首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么替换DataFrame中的值也会替换原始DataFrame中的值

为什么替换DataFrame中的值也会替换原始DataFrame中的值
EN

Stack Overflow用户
提问于 2021-04-21 18:05:07
回答 2查看 37关注 0票数 0

我有一个在索引中有大量日期的DataFrame 'Datos‘。我想花一段时间,所以我定义了另一个数据帧作为AntCris=Datos.loc['2005-01-01':'2007-07-01'],然后我在'AntCris‘上做了一些操作,同时替换了'AntCris’内部的结果。我用于这些替换的代码不能正常工作,但这不是重点。代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
for x in AntCris.columns:
  aux=AntCris[x].dropna()
  aux2=aux.iloc[0]
  print(x)
  for y in AntCris[x].values:
    if np.isnan(y)==True:
      b=2
    else:
      a=np.log(y)-np.log(aux2)
      AntCris[x]=AntCris[x].replace([y],a)

一旦错误停止了这段代码的运行,有时我会修改AntCris,但也会修改Datos。我该如何避免这种情况呢?我只想在AntCris上做更改,甚至在“Datos”的副本中进行更改,但保持原始的原样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-21 18:11:59

要创建数据帧的真实副本,您可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
AntCris = Datos.copy()
票数 1
EN

Stack Overflow用户

发布于 2021-04-21 18:44:30

切片创建浅层拷贝,而copy method可用于创建深层拷贝。深度拷贝会导致原始数据帧的独立拷贝。

要获取深度数据副本,请使用下面的命令。

代码语言:javascript
代码运行次数:0
运行
复制
AntCris = Datos.copy()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67193621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档