Python pandas:从Datafram中寻找衍生工具

2024-09-29 23:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框如下所示:

                     date     time   sym        ask0        ask1        ask2  
0     2017-08-21 07:00:00 07:00:00   7YR  100.812500  100.828125  100.843750   
1     2017-08-21 07:00:15 07:00:15   7YR  100.812500  100.828125  100.843750   
2     2017-08-21 07:00:30 07:00:30   7YR  100.812500  100.828125  100.843750   
3     2017-08-21 07:00:45 07:00:45   7YR  100.812500  100.828125  100.843750   
4     2017-08-21 07:01:00 07:01:00   7YR  100.812500  100.828125  100.843750   
5     2017-08-21 07:01:15 07:01:15   7YR  100.812500  100.828125  100.843750   
6     2017-08-21 07:01:30 07:01:30   7YR  100.812500  100.828125  100.843750   
7     2017-08-21 07:01:45 07:01:45   7YR  100.812500  100.828125  100.843750   
8     2017-08-21 07:02:00 07:02:00   7YR  100.812500  100.828125  100.843750   
9     2017-08-21 07:02:15 07:02:15   7YR  100.812500  100.828125  100.843750   
10    2017-08-21 07:02:30 07:02:30   7YR  100.812500  100.828125  100.843750   
11    2017-08-21 07:02:45 07:02:45   7YR  100.828125  100.843750  100.859375   
12    2017-08-21 07:03:00 07:03:00   7YR  100.812500  100.828125  100.843750   
13    2017-08-21 07:03:15 07:03:15   7YR  100.828125  100.843750  100.859375   
14    2017-08-21 07:03:30 07:03:30   7YR  100.828125  100.843750  100.859375   
15    2017-08-21 07:03:45 07:03:45   7YR  100.828125  100.843750  100.859375   
16    2017-08-21 07:04:00 07:04:00   7YR  100.828125  100.843750  100.859375   
17    2017-08-21 07:04:15 07:04:15   7YR  100.828125  100.843750  100.859375   
18    2017-08-21 07:04:30 07:04:30   7YR  100.828125  100.843750  100.859375   
19    2017-08-21 07:04:45 07:04:45   7YR  100.828125  100.843750  100.859375   
20    2017-08-21 07:05:00 07:05:00   7YR  100.828125  100.843750  100.859375   
21    2017-08-21 07:05:15 07:05:15   7YR  100.828125  100.843750  100.859375   
22    2017-08-21 07:05:30 07:05:30   7YR  100.828125  100.843750  100.859375 

我想计算导数: d = d(ask0)/dt

其中dt = 2分钟。在

例如

^{pr2}$

我知道我可以通过迭代dataframe中的每一行来做到这一点。在

但我想知道是否有熊猫的功能来做这项工作。在


Tags: 数据功能dataframedatetimedt导数sym
3条回答

如果你的数据是15秒间隔的时间序列,你可以这样做

d['deriv'] = (d['ask0'] - d['ask0'].shift(8))/2

第一步是确保datedatetime

df.date = pd.to_datetime(df.date)

解决方案

^{pr2}$

首先,确保日期是日期时间Series:df.date = to_datetime(df.date)。使用df.set_index('date')将该序列作为数据帧的索引。然后以15秒的步长对数据帧重新采样并插值:

resampled = d.resample('15s').interpolate()

现在所有的行都在同一个时间距离上,2分钟前的那一行移动了8。在

^{pr2}$

相关问题 更多 >

    热门问题