在从旧版本的Pandas 0.9.1版(在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'sundract' 根据投射规则'safe'
,无法安全地强制转换为任何支持的类型
我尝试递归地“手动”应用该函数,看看是否有一些日期作为lambda定义中的x参数传递错误,但随时都设法得到正确的结果。但是apply
方法似乎不再起作用了,也无法理解为什么。
请帮忙吗? 感谢
P.S。我想用以下内容编辑我的问题,因为事实上,在进一步调查之后,我发现这个错误的原因是由于新版本的Pandas,TimeSeries的索引属于“类” 'pandas.lib.Timestamp'“类型,因此我的函数产生了一个问题,需要一个日期时间对象。
答案 0 :(得分:0)
我终于通过检查新版本的文档解决了我的问题,其中解释了索引现在如何被视为时间戳here,因此使用.to_pydatetime()方法根据需要转换正确的日期时间对象中的索引值通过我的功能。