Python 将包含日期时间的序列除以包含整数的序列

Python 将包含日期时间的序列除以包含整数的序列,python,pandas,Python,Pandas,我有一个datetime类型的序列s1,其时间表示开始时间和结束时间之间的范围-典型值为7天、4小时5分钟等。我有一个序列s2,其中包含该时间范围内发生的事件数的整数 我想通过以下方式计算事件频率: 事件频率=s1/s2 我得到一个错误: 无法在没有datetime64[ns]类型的series/ndarray的rhs或timedelta的series上操作 解决这个问题的最好方法是什么 提前谢谢 s1的示例是: some_id 1 2012-09-02 09:18:40 3

我有一个datetime类型的序列s1,其时间表示开始时间和结束时间之间的范围-典型值为7天、4小时5分钟等。我有一个序列s2,其中包含该时间范围内发生的事件数的整数

我想通过以下方式计算事件频率:

事件频率=s1/s2

我得到一个错误:

无法在没有datetime64[ns]类型的series/ndarray的rhs或timedelta的series上操作

解决这个问题的最好方法是什么

提前谢谢

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

这可能是一个bug,但有效的方法是对底层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]

你能举一个s1和s2的例子来说明你的问题吗?嘿,Andy,刚刚补充了-谢谢你的提示。s1在一系列的日期中,不确定用整数除以是否有意义?这目前没有实现,主要是因为numpy<1.7中的支持不起作用,但不太难做到: