在一些迭代之后,多次重复相同的两个数据帧会引发错误

时间:2016-02-17 20:50:58

标签: python pandas dataframe multiplication

在下面的示例中,在一些没有问题的迭代之后,引发了一个除法错误,因为C数据帧被填充为0而不是1(没有问题的迭代次数不时变化,例如蜘蛛上22到46,Jupyter上200到600)。

降低行数或列数避免了问题。似乎指向内存问题。

任何解释都是受欢迎的,因为我正在执行需要类似计算的多个模拟(但我知道这个例子没有实际意义)。

import pandas as pd
A=pd.DataFrame(1, range(1,1000), range(1,132))
B=A.copy()
for i in range (0,10000):
    C=A.multiply(B)
    print ("Iteration "+str(i)+", Sum of C : "+str(C.sum().sum())+", Inverse of the sum of C : "+str(1/(C.sum().sum())))

1 个答案:

答案 0 :(得分:2)

这不是Python或Pandas问题。如果从终端运行它,您将看到它正常运行。

这可能是由于Spyder和Jupyter试图在循环进行时捕获数据的开销。

使用具有足够RAM的计算机,您仍然可以在Spyder和/或Jupyter上运行它。我刚刚使用16GB机器在Jupyter上运行它并且运行正常。