大熊猫在使用副本时更改df

时间:2017-12-16 17:06:26

标签: python-3.x pandas

之前有其他人见过这种行为吗?

我在下面有一段简短的代码段:

 import pandas as pd

 df1= pd.DataFrame({'a':[1,2], 'b': [10,20]})
 df2=df1 
 df2['newcol']=1
 print('df1\n',df1)
 print('df2\n',df2)

我整天都变得非常奇怪。输出是:

 df1
 a   b  newcol
 0  1  10       1
 1  2  20       1

 df2
    a   b  newcol
 0  1  10       1
 1  2  20       1

出于某种奇怪的原因,df1有新列和df2 !!

我正在运行pycharm和python 3.5.2

我之前从未遇到过这个问题。我已经尝试重新安装pycharm,重新启动我能想到的一切!

这似乎与我从df1复制df2的事实有关但这里发生了什么?以及如何阻止它!

1 个答案:

答案 0 :(得分:1)

对于python中的新可变对象(此处为DataFrame),需要copy

df2 = df1.copy()

更好的解释是here

相关问题