0

0.9.1我无法使用以前版本的新版本 Pandas(在 Python 2.7 下)运行某段代码。我运行的代码如下:

myfunc = lambda x: makeDfCurve(frame,x)
dates = Series(frame.index, index = frame.index) # new Time series filled temporarily 
# with dates taken from a certain dataframe 'frame' index
# and here's where the code crash:
frame['curve'] = dates.apply(myfunc) 

我收到以下错误:

TypeError:输入类型不支持 ufunc 'subtract',并且根据转换规则 'safe' 无法安全地将输入强制转换为任何支持的类型

我尝试递归该函数以查看在 lambda 定义中作为 x 参数传递的某些日期是否有错误,但我在任何时候都得到了正确的结果。但是该方法不再起作用,我不知道为什么。我会很感激你的帮助和想法。

谢谢

PS我想用以下内容编辑我的问题,因为事实上,经过进一步调查:

这个错误是由于新版本的 Pandas 引起的:TimeSeries 的索引属于“类'pandas.lib.Timestamp'”类型,因此它给我的函数带来了一个问题,它需要一个日期时间对象。

4

1 回答 1

0

我终于通过检查新版本的文档解决了我的问题,其中解释了索引现在如何被视为时间戳因此使用 .to_pydatetime() 方法将索引值转换为正确的日期时间对象,这是我的函数所要求的。

于 2012-11-21T17:03:47.790 回答