编程语言
首页 > 编程语言> > python-从库存数据获取每天的首次交易时间

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