【问题标题】:problems with apply function in pandas after update更新后熊猫应用功能的问题
【发布时间】:2012-11-21 11:23:14
【问题描述】:

我无法使用以前版本的 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 'subtract' 不支持输入类型和输入 根据强制转换规则“安全”,无法安全地强制转换为任何支持的类型

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

谢谢

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

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

【问题讨论】:

  • 这只是一个需要 datetime.datetime 值的基本功能,我将编辑我的问题以提供更多信息。

标签: python pandas apply


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 2015-09-30
    • 2017-03-29
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多