过滤,平均和删除pandas数据帧中的行

时间:2017-12-10 17:19:53

标签: python pandas

我需要指导。

请指教我可以使用哪个库来解决以下问题。我对Python很新,我试图对某些股票交易数据做一些统计。我为没有发布示例代码而道歉,因为我实际上并不知道从哪里开始。

我的数据如下:

这些共有3笔交易已被分解成碎片,目标是将它们合并为3个完整的单独交易以进行进一步分析。

需要删除多余的日期,因为它们都是相同的,必须平均时间,必须删除多余的符号,需要平均价格和需要添加数量。路线和经纪人并不重要

B =买入,S =卖出,SS =卖空

          Date      Time  Symb Side    Price   Qty Route  Broker   
0   2017-12-05  12:26:13   VRX    B   2.2000  1000  PDQM     NaN    
1   2017-12-05  12:00:21   VRX   SS   2.1700   200  EDGE     NaN    
2   2017-12-05  12:00:21   VRX   SS   2.1700   100  EDGE     NaN   
3   2017-12-05  12:00:21   VRX   SS   2.1700   500  EDGE     NaN    
4   2017-12-05  12:00:21   VRX   SS   2.1700   200  EDGE     NaN  
5   2017-12-05  11:53:14   FRK    S   2.4000  1000  EDGE     NaN    
6   2017-12-05  11:52:41   FRK    B   2.4200   300  PDQM     NaN    
7   2017-12-05  11:52:41   FRK    B   2.4200   700  PDQM     NaN     
8   2017-12-05  11:51:53   CUR    B   2.3200  1000  PDQM     NaN    
9   2017-12-05  11:50:36   CUR   SS   2.1900   710  EDGE     NaN     
10  2017-12-05  11:50:32   CUR   SS   2.1900   290  SMAT     NaN  

最终结果应如下所示:

总共3笔交易中,每笔交易6条线由2条边组成,买入和卖出,或卖空和买入。请注意,数据是向后的,从最底层的最旧交易到顶部的最新交易

          Date      Time  Symb Side    Price   Qty
0   2017-12-05  12:26:13   VRX    B   2.2000  1000 
1   2017-12-05  12:00:21   VRX   SS   2.1700  1000 
2   2017-12-05  11:53:14   FRK    S   2.4000  1000 
3   2017-12-05  11:52:41   FRK    B   2.4200  1000 
4   2017-12-05  11:51:53   CUR    B   2.3200  1000 
5   2017-12-05  11:50:34   CUR   SS   2.1900  1000 

1 个答案:

答案 0 :(得分:1)

aggs = {"Price":"mean", "Qty":"sum","Time":"min"}

df = df.groupby(["Date","Symb", "Side"])[["Price","Qty","Time"]].agg(aggs)
df = df.reset_index()