我有一个WCF服务,必须从.net 2.0项目中引用。 我尝试使用“ 添加网络引用 ”方法来引用它,但它弄乱了参数。 例如,我在服务中有一个方法希望传递char[] ,但是当我添加Web引用时,该方法期望一个int[] 。 因此,我尝试设置svcutil并使其工作……。 我 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我们使用pandas Dataframe作为我们时间序列数据的主要数据容器。 我们将数据帧打包成二进制blob到mongoDB文档中以便存储,以及关于时间序列blob的元数据的键。
当我们从pandas 0.14.1升级到0.15.2时,我们遇到了错误。
创建pandas Dataframe的二进制blob(0.14.1)
import lz4
import cPickle
bd = lz4.compress(cPickle.dumps(df,cPickle.HIGHEST_PROTOCOL))
错误案例 :使用pandas 0.15.2从mongoDB读回
cPickle.loads(lz4.decompress(bd))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-37-76f7b0b41426> in <module>()
----> 1 cPickle.loads(lz4.decompress(bd))
TypeError: ('_reconstruct: First argument must be a sub-type of ndarray', <built-in function _reconstruct>, (<class 'pandas.core.index.Index'>, (0,), 'b'))
成功案例 :使用pandas 0.14.1从mongoDB读回,没有错误。
这似乎类似于从源代码编译的旧堆栈线程Pandas:默认的pickle行为已更改来自https://stackoverflow.com/users/644898/jeff的有用评论
您看到的错误消息`TypeError:_reconstruct:第一个参数必须是ndarray的子类型,因为python默认的unpickler确保被pickle的类层次结构与它重新创建的完全相同。 由于系列版本在版本之间发生了变化,因此默认的unpickler不再可能这样做了(这个恕我直言是pickle工作方式的一个错误)。 无论如何,大熊猫会破坏具有Series对象的pre-0.13泡菜。“
有关变通方法或解决方案的想法吗?
要重新创建错误:
安装在pandas 0.14.1 env:
df = pd.DataFrame(np.random.randn(10,10))
cPickle.dump(df,open("cp0141.p","wb"))
cPickle.load(open('cp0141.p','r')) # no error
在pandas 0.15.2 env中创建错误:
cPickle.load(open('cp0141.p','r'))
TypeError: ('_reconstruct: First argument must be a sub-type of ndarray', <built-in function_reconstruct>, (<class 'pandas.core.index.Int64Index'>, (0,), 'b'))
这被明确提到作为Index
类现在不再是子类ndarray
而是一个pandas对象,请参见此处 。
您只需使用pd.read_pickle
来阅读泡菜。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.