python - 局部变量在 Python 中被无意更改
问题描述
我有一个 pandas 数据框“df”,我在其上应用了几个函数。我不想更改原始数据框的值。我所有的功能都是这样的:
def func(x):
# do some stuff with x
return x
y = func(x=df)
我没有在函数中引用 df 变量。但是变量无论如何都会改变。有人可以向我解释为什么会这样以及如何避免吗?
解决方案
发送数据帧的深拷贝
y = func(x=df.copy())
默认情况下是 deepcopy。
推荐阅读
- kubernetes - k8s-Sync 节点上的服务健康检查
- c++ - 将临时对象转换为非常量引用时出错
- javascript - this.props.token 在 componentDidMount 中为空,但在其他函数中不为空
- plc - 从 CoDeSys 运行时执行 Linux 系统命令
- neo4j - 有没有办法插入一个额外的节点,同时将链接(各种类型)从现有节点复制到其他节点
- bit-manipulation - 如何工作搜索 sebset 算法
- python - 如何在 pandas 中做条件累积移位函数?
- scala - 为什么赋予 spark 作业的 executor 内存参数与 yarn 上分配的内存不匹配?
- scala - Spark压缩网络和瓶颈
- java - 我怎样才能让这个 encrypt-er 循环回字母表?