更新后pandas中应用函数的问题

时间:2012-11-21 11:23:14

标签: python pandas apply

在从旧版本的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'“类型,因此我的函数产生了一个问题,需要一个日期时间对象。

1 个答案:

答案 0 :(得分:0)

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