0

在 pandas 中,inplace参数对引用进行修改,但我知道在 python 中数据是按值而不是按引用发送的,我想知道这是如何实现的或它是如何工作的

4

1 回答 1

1

Python 的参数传递模型既不是“按值传递”也不是“按引用传递”,而是“按对象引用传递”</p>

当您将字典传递给函数并在函数内部修改该字典时,更改将反映在字典的任何地方

然而,这里我们正在处理一些更不那么模棱两可的事情。当传递inplace=Truepandas对象(无论是 aSeries还是 a DataFrame)的方法调用时,我们只是说:更改当前对象而不是给我一个新对象。方法调用可以修改调用它们的实例的变量——这与语言是“按值调用”还是“按引用调用”无关。唯一会变得棘手的情况是,如果一种语言只有常量(想想val)而没有变量(想想var)——想想纯粹的函数式语言。然后,这是真的——你只能返回新对象,不能修改任何旧对象。但在实践中,即使是最纯粹的语言,您也可以找到就地更新记录的方法。

于 2021-12-03T13:12:45.487 回答