python-3.x - 如何按日期时间 + / - 一分钟分组?
问题描述
我有一个数据框,其中包含我在证券交易所执行的订单。在大多数情况下,我会收到部分订单成交。在同一秒内执行所有订单。大多。
所以我可以使用 groupby 来概览我的交易。但是,有时部分订单执行并不完全相同。这就是我的问题所在。
我如何在 2 分钟的时间内获取所有订单确认信息,以忽略时间上的微小差异?
这是例如我的输入
2019-09-17 18:30:46 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 82.0 BOT 1931.9200
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
2019-09-17 18:30:47 23.5600 100.0 BOT 2356.0000
我希望它看起来像下面这样,但是 18:30:46 的第一行会造成混乱。
2019-09-17 18:30:47 23.560000 782.0 18423.9200
我的代码非常简单。
tradesum = tradeoverview.groupby(tradeoverview.index).sum()
我该如何解决这个问题?也许我可以将 df 重新采样为 2 分钟的时间间隔?但是我仍然冒着订单在区间两边被精确分割的风险。
解决方案
您可以使用resample
方法基本上根据日期时间索引对数据进行分组,无论多少秒或分钟(或其他时间单位)。在这里,我'2s'
每 2 秒通过一次采样,您可以'1m'
每分钟通过一次采样,等等。
df.resample('2s').agg({'c1': 'max',
'c2': 'sum',
'c3': 'max',
'c4': 'sum'
})
假设列名是dt, c1, c2, c3, c4
c1 c2 c3 c4
dt
2019-09-17 18:30:46 23.56 782 BOT 18423.92
推荐阅读
- arguments - 如何使用元类传递参数
- python - Z3:定义类层次结构有什么更方便高效的方法?
- j - 对输入的每一行应用多个函数
- python - 如何将动态结果与时间戳联系起来
- javascript - 我如何在 React JS 的函数中使用我的函数
- css - 通过CSS中的:root var向边框添加线性渐变?
- php - 在特定时间运行一次 PHP 脚本
- python - 在 Python 中,为什么没有定义这个 'AA1'
- android - 膨胀类 com.google.android.material.tabs.TabLayout 时出错(没有活动的棒棒糖)
- skype - 解密 Skype 私人消息