修复明显的 Anaconda Python 腐败修复

Fixing Apparent Anaconda Python Corruption Fix

我在 Windows 7.0 Professional 中使用 Anaconda Python 2.7 在 Spyder 3.1.4 中进行开发。我也在使用 Pandas.

在对程序进行大量工作后,我遇到了一个一致的奇怪问题。 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 安装。如果这确实是对环境的破坏,那么 repair/reinstall Anaconda 和 Spyder 的最佳方法是什么?

提前致谢。

dfb = dfa 只是设置变量指向同一个对象。如果更新 dfa,则更新的对象与 dfb 相同。这就是 Pandas 的工作原理。

如果您真的想创建 dfa 的副本,请使用:

dfc = dfa.copy()

你如何检查你的变量是否指向数据帧的副本,它是否指向同一个数据帧:

dfb is dfa
True

dfc is dfa
False

这不是腐败。