【发布时间】:2019-10-03 00:12:59
【问题描述】:
最近我得到了一个 csv 文件,其中包含我们公司在不同市场/工具上进行的交易。我的数据集包含超过 50 万行。
这是我的数据样本,没有不相关的(此时)列:
Market Price Quantity
Time
2019-01-01 09:42:16 Share 180.00 5.0
2019-01-01 09:44:59 Share 180.00 10.0
2019-01-01 09:46:24 Share 180.00 6.0
2019-01-01 09:47:21 Share 180.00 5.0
2019-01-01 09:52:19 Share 180.00 10.0
2019-01-01 09:52:19 Share 180.00 5.0
2019-01-01 09:52:19 Share 180.00 5.0
2019-01-01 09:57:37 Share 180.01 10.0
2019-01-02 10:03:43 Share 235.00 10.0
2019-01-02 10:04:11 Share 235.00 10.0
2019-01-02 10:04:19 Share 235.00 10.0
... ... ... ...
2019-05-13 10:06:44 Share 233.00 10.0
2019-05-13 10:11:45 Share 233.00 10.0
2019-05-13 10:11:45 Share 233.00 10.0
2019-05-13 10:11:49 Share 234.00 10.0
2019-05-13 10:11:49 Share 234.00 10.0
2019-05-13 10:11:54 Share 233.00 10.0
2019-05-14 09:50:56 Share 230.00 10.0
2019-05-14 09:53:31 Share 229.00 10.0
2019-05-14 09:53:55 Share 229.00 5.0
2019-05-14 09:53:59 Share 229.00 3.0
2019-05-14 09:54:01 Share 229.00 2.0
2019-05-14 09:54:07 Share 229.00 3.0
2019-05-14 09:54:16 Share 229.00 2.0
我已经将 Time 列转换为 pandas 日期时间。
虽然我能够获得一些所需的统计数据,但我却卡在查找每天的第一笔和最后一笔交易的时间。
Expected OUTPUT:
2019-03-12 08:43:23 Share(name) 248 10
2019-03-12 16:48:21 Share(name) 250 20
嗯,我在 Excel 中获取这个没有问题,但考虑到快速增长的数据数量,我宁愿为此目的使用 pandas 和 python。
我假设 groupby 和 resample 方法的某种组合可能是解决方案,但我不知道如何将它们正确应用于我的数据框。
我们将不胜感激。
感谢 Ben Pap 我得到了结果:
dbs.groupby(dbs.index.date).apply(lambda x: x.iloc[np.r_[0:1,-1:0]])
这是我提出的另一个问题。我想用什么函数来获得第一次交易的时间最大值。那么换句话说,哪一天的市场最晚开始?
【问题讨论】:
-
你不应该修改你的帖子以获得额外的问题。相反,请打开一个新帖子。
标签: python python-3.x pandas pandas-groupby