【发布时间】:2015-12-29 21:42:43
【问题描述】:
我在 pandas 中有一个数据框,其中包含事件发生后的天数。我想创建一个新列,通过从当前日期减去天数来计算事件的日期。每次我尝试应用 pd.offsets.Day 或 pd.Timedelta 时,都会收到一条错误消息,指出 Series 是不受支持的类型。当我使用apply 时也会发生这种情况。当我使用 map 时,我收到一个运行时错误,提示“调用 Python 对象时超出了最大递归深度”。
例如,假设我的数据框如下所示:
index days_since_event
0 5
1 7
2 3
3 6
4 0
我想创建一个包含事件日期的新列,所以我的预期结果(使用今天的日期 2015 年 12 月 29 日)
index days_since_event event_date
0 5 2015-12-24
1 7 2015-12-22
2 3 2015-12-26
3 6 2015-12-23
4 0 2015-12-29
我尝试了多种方法来做到这一点,但都收到了错误。
我尝试过的一种方法是:
now = pd.datetime.date(pd.datetime.now())
df['event_date'] = now - df.days_since_event.apply(pd.offsets.Day)
我收到一条错误消息,指出 Series 是不受支持的类型。
我用.map而不是.apply尝试了上述方法,并收到“调用Python对象时超出最大递归深度”的错误。
我还尝试将天数转换为时间增量,例如:
df.days_since_event = (dt.timedelta(days = df.days_since_event)).apply
这也收到一个错误,引用该系列是不受支持的类型。
【问题讨论】:
-
邮政编码,问题可能是任何事情