我在熊猫中有一个数据框,其中包括自事件发生以来的天数.我想创建一个新列,通过减去当前日期的天数来计算事件的日期.每次我尝试申请pd.offsets.Day
或pd.Timedelta
收到错误,说明系列是不受支持的类型.我使用时也会发生这种情况apply
.当我使用时,map
我收到一个运行时错误,说"调用Python对象时超出了最大递归深度".
例如,假设我的数据框看起来像这样:
index days_since_event
0 5
1 7
2 3
3 6
4 0
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含事件日期的新列,因此我的预期结果(使用今天的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
Run Code Online (Sandbox Code Playgroud)
我尝试了多种方法来做到这一点,但每个方法都收到了错误.
我试过的一种方法是:
now = pd.datetime.date(pd.datetime.now())
df['event_date'] = now - df.days_since_event.apply(pd.offsets.Day)
Run Code Online (Sandbox Code Playgroud)
有了这个,我收到一个错误,说系列是不受支持的类型.
我尝试了上面的.map
代替.apply
,并收到"调用Python对象时超出最大递归深度"的错误.
我还尝试将日期转换为timedelta,例如:
df.days_since_event = (dt.timedelta(days = df.days_since_event)).apply
Run Code Online (Sandbox Code Playgroud)
这也引用了一个错误,引用该系列是不受支持的类型.