我有一个系列s1,其类型为datetime,其时间表示开始时间和结束时间之间的范围 - 典型值为7天,4小时5分钟等。我有系列s2,其中包含整数在该时间范围内发生的事件数量。
我想通过以下方式计算事件频率:
event_freq = s1 / s2
我收到错误:
不能在没有类型为datetime64 [ns]或timedelta
的系列/ ndarray的rhs的系列上运行
解决这个问题的最佳方法是什么?
提前致谢!
s1的例子是:
some_id
1 2012-09-02 09:18:40
3 2012-04-02 09:36:39
4 2012-02-02 09:58:02
5 2013-02-09 14:31:52
6 2012-01-09 12:59:20
s2的例子是:
some_id
1 3
3 1
4 1
5 2
6 1
8 1
10 3
12 2
答案 0 :(得分:2)
这可能是一个错误但是可行的是对底层的numpy数组进行操作,如下所示:
import pandas as pd
from pandas import Series
startdate = Series(pd.date_range('2013-01-01', '2013-01-03'))
enddate = Series(pd.date_range('2013-03-01', '2013-03-03'))
s1 = enddate - startdate
s2 = Series([2, 3, 4])
event_freq = Series(s1.values / s2)
以下是系列:
>>> s1
0 59 days, 00:00:00
1 59 days, 00:00:00
2 59 days, 00:00:00
dtype: timedelta64[ns]
>>> s2
0 2
1 3
2 4
dtype: int64
>>> event_freq
0 29 days, 12:00:00
1 19 days, 16:00:00
2 14 days, 18:00:00
dtype: timedelta64[ns]