我在Windows 7.0中使用Anaconda Python 2.7在Spyder 3.1.4中开发。我也在使用熊猫。
在程序上进行了大量工作后,我得到了一个一致的奇怪问题。python/pandas开始以相同的方式使用不同的名称处理两个相同的数据框。
我定义了数据帧如下:
dfa = pd.DataFrame(np.empty(0,dtype=[('Date','datetime64[ns]'),
('column1', 'string'),
('column2','string'),
('column3','string')]))
我现在复制此(空(数据框:
dfb = dfa
就在此之后,我将dfa
附加到如下:
dfa.loc[indexvalue,:] = ([item1,item2,item3....])
这可以正常工作,直到涉及许多运行(测试代码的其他部分(之后,该命令也开始同时同时更新dfb
。使用dfb
的类似操作导致与dfa
我不是包装安装的专家,并且已经大量检查了我的代码。这似乎是腐败。
有人可以建议如何最好地处理这个问题吗?我不想开始撕开我的anaconda安装。如果这确实是环境上的腐败,那么修复/重新安装Anaconda和Spyder的最佳方法是什么?
预先感谢。
dfb = dfa
只是设置为变量以指向同一对象。如果更新DFA,则将更新与DFB相同的对象。这就是熊猫的工作方式。
如果您真的想创建DFA使用的副本:
dfc = dfa.copy()
您如何检查您的变量是否是dotaig of dataframe的副本,它指向相同的dataframe:
dfb is dfa
True
dfc is dfa
False
这不是腐败。