gpt4 book ai didi

python - Pandas 错误划分数据帧

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:27 25 4
gpt4 key购买 nike

我有一个奇怪的情况,pandas(假设是 pandas,而不是 Python)给出了一个不一致的错误。我在 Windows 10 机器上运行 Python 2.7.11 和 Pandas 0.17.1。

基本错误是这样的:如果我有两个具有匹配索引的 df,然后简单地执行:dfA/dfB - 1,如果重新运行多次,此计算将返回不一致的错误。

具体来说:

import pandas as pd

close = pd.read_csv("C:\close.csv")
shifted = pd.read_csv("C:\shifted.csv")
ret = pd.DataFrame()

ret = shifted.C / close.C - 1
foo = min(ret)
bar = max(ret)
print "Starting with Max: %.4f Min %.4f" % (foo, bar)

for i in range(1000):
ret = shifted.C / close.C - 1
foo = min(ret)
bar = max(ret)
if foo < -.17 or bar > .16:
print "Error on run %i: Max: %.4f Min %.4f" % (i, foo, bar)

我有 .py 和两个 csv at this link .

将 csv 放入您的 C: 根目录(或更改其他位置的文件位置的代码)并运行代码。如果它没有错误,请再次运行它,它很可能会。甚至错误频率也不一致;有时它会在一千次迭代中出错 20 次以上,但通常只有 1-2 次。

这似乎是非常基本的功能,所以我一定是做错了什么。这是一个更大的项目的结果,我认为这是对 Nan 的处理不一致造成的,但这个例子表明情况并非如此。

如有任何帮助,我们将不胜感激。谢谢!

更新:根据@EdChum 的暗示建议,将 Python 更新为 Python 3.5.1 |Anaconda 2.4.1(64 位)| (默认,2015 年 12 月 7 日,15:00:12)Win32 上的 [MSC v.1900 64 位 (AMD64)]。

Pandas 版本是 0.17.1,Numpy 是 1.10.1。

以免您认为我疯了(如果有人带着这个错误来找我,我可能会这样),下面是这个小程序几次运行的结果。错误似乎更罕见,但它们仍然会发生。 Errors on Windows 10 machine

有什么想法吗?某种类型的内存问题?什么会导致如此简单的操作出现间歇性错误?

更新#2认为这可能是某种内存问题,因此重写了代码以简单地计算操作中的错误数。得到这些高度可疑的结果:

>85 errors in 20000 runs on 10100 dataframe rows
>144 errors in 20000 runs on 10001 dataframe rows
>0 errors in 20000 runs on 10000 dataframe rows
>0 errors in 20000 runs on 9999 dataframe rows

10,000 行不是很多,但似乎这是问题所在?我应该注意 Pandas 中的某些限制吗?

最佳答案

此错误是由 NumExpr 版本 2.4.4 引起的。我们 (Continuum) 将很快更新此软件包,已确认可以解决此问题。在那之前,您可以删除 numexpr:

conda remove numexpr

请参阅此相关问题:https://github.com/pydata/pandas/issues/11743

编辑:NumExpr 2.4.6 现在应该可用(2016 年 1 月 14 日)。

关于python - Pandas 错误划分数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com