在下面的示例中,在一些没有问题的迭代之后,引发了一个除法错误,因为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())))
答案 0 :(得分:2)
这不是Python或Pandas问题。如果从终端运行它,您将看到它正常运行。
这可能是由于Spyder和Jupyter试图在循环进行时捕获数据的开销。
使用具有足够RAM的计算机,您仍然可以在Spyder和/或Jupyter上运行它。我刚刚使用16GB机器在Jupyter上运行它并且运行正常。