python-从库存数据获取每天的首次交易时间
作者:互联网
最近,我得到了一个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
我已经将“时间”列转换为熊猫日期时间.
尽管我能够获得一些所需的统计信息,但我仍然无法确定每天的第一笔和最后一笔交易的时间.
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]])
这是我提出的另一个问题.我想使用什么函数来获得第一次交易时间的最大值.那么换句话说,哪一天的交易最晚开始?
解决方法:
df.groupby(df['Time'].dt.day).apply(lambda x: x.iloc[np.r_[0:1, -1:0]])
只要订购日期,这将为您提供每天的第一天和最后一天.
标签:pandas-groupby,pandas,python-3-x,python 来源: https://codeday.me/bug/20191024/1922391.html