如何在数据框中选择每 5 分钟的行?如果缺少第 5 分钟,那么第 4 或第 3 分钟就可以了。
我不想要平均值或任何聚合
我试过:
df.groupby(pd.TimeGrouper('5Min'))['AUDUSD'].mean()
df.resample('5min', how=np.var).head()
两者都没有产生预期的结果..
我的输入:
DATETIME AUDUSD
DATETIME
2019-06-07 00:01:00 2019.06.07 00:01 0.69740
2019-06-07 00:02:00 2019.06.07 00:02 0.69742
2019-06-07 00:03:00 2019.06.07 00:03 0.69742
2019-06-07 00:04:00 2019.06.07 00:04 0.69742
2019-06-07 00:05:00 2019.06.07 00:05 0.69739
2019-06-07 00:06:00 2019.06.07 00:06 0.69740
2019-06-07 00:07:00 2019.06.07 00:07 0.69739
2019-06-07 00:08:00 2019.06.07 00:08 0.69740
2019-06-07 00:11:00 2019.06.07 00:11 0.69741
2019-06-07 00:12:00 2019.06.07 00:12 0.69741
2019-06-07 00:13:00 2019.06.07 00:13 0.69740
2019-06-07 00:14:00 2019.06.07 00:14 0.69740
2019-06-07 00:15:00 2019.06.07 00:15 0.69754
2019-06-07 00:16:00 2019.06.07 00:16 0.69749
2019-06-07 00:17:00 2019.06.07 00:17 0.69752
2019-06-07 00:18:00 2019.06.07 00:18 0.69753
2019-06-07 00:19:00 2019.06.07 00:19 0.69758
2019-06-07 00:20:00 2019.06.07 00:20 0.69763
2019-06-07 00:21:00 2019.06.07 00:21 0.69764
2019-06-07 00:23:00 2019.06.07 00:23 0.69765
2019-06-07 00:28:00 2019.06.07 00:28 0.69763
期望的输出:
DATETIME AUDUSD
DATETIME
2019-06-07 00:05:00 2019.06.07 00:05 0.69739
2019-06-07 00:10:00 2019.06.07 00:08 0.69740
2019-06-07 00:15:00 2019.06.07 00:15 0.69754
2019-06-07 00:20:00 2019.06.07 00:20 0.69763
2019-06-07 00:25:00 2019.06.07 00:23 0.69765
2019-06-07 00:30:00 2019.06.07 00:28 0.69763
最佳答案
这对我有用,除了我先用的,因为我不知道你用的是什么方法:
df.set_index(pd.DatetimeIndex(df['DATETIME']))
df.set_index(pd.DatetimeIndex(df['DATETIME'])).resample("5T").agg('first')
Out[2649]:
DATETIME AUDUSD
DATETIME
2019-06-07 00:00:00 2019.06.07 00:01 0.69740
2019-06-07 00:05:00 2019.06.07 00:05 0.69739
2019-06-07 00:10:00 2019.06.07 00:11 0.69741
2019-06-07 00:15:00 2019.06.07 00:15 0.69754
2019-06-07 00:20:00 2019.06.07 00:20 0.69763
2019-06-07 00:25:00 2019.06.07 00:28 0.69763
关于python - 在 python 中基于分钟的日期时间列中每隔 n 分钟采样一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59341819/