Python 数据帧分配

Python 数据帧分配,python,pandas,Python,Pandas,我有一个数据帧df4。 从中我导出了数据帧df_upper 修改df_后,上部df4显示相同的修改,尽管 我没有修改df4本身。这是为什么?如何避免? 这是特定的还是一般的python相关的 stepsize=0.1 df_upper=df4 df_upper['strike']=df_upper['strike']+stepsize print df4 print df_upper 必须使用df.copy()显式复制pandas对象。因此,这仅适用于pandas对象?这是python方法的p

我有一个数据帧df4。 从中我导出了数据帧df_upper 修改df_后,上部df4显示相同的修改,尽管 我没有修改df4本身。这是为什么?如何避免? 这是特定的还是一般的python相关的

stepsize=0.1
df_upper=df4
df_upper['strike']=df_upper['strike']+stepsize
print df4
print df_upper

必须使用df.copy()显式复制pandas对象。

因此,这仅适用于pandas对象?这是python方法的pandas表现形式。这里有一篇关于“按价值调用”与“按引用调用”的博文,非常感谢您在这方面给我指点。我完全没有意识到这一点。根据列表,它们也是可变的。然而,当我尝试I=[1]j=ij=[2]print I时,I并没有发生变异。这是python的核心。当您指定类似
x=df4
的内容时,您只需将该名称
x
绑定到
df4
表示的对象。这就是python的工作方式,理解它很重要。