【问题标题】:filtering, averaging and removing rows in pandas dataframe过滤、平均和删除熊猫数据框中的行
【发布时间】:2017-12-10 17:19:52
【问题描述】:

我需要指导。

能否请您指导我可以使用哪个库来解决以下问题。我对 Python 相当陌生,我正在尝试对一些股票交易数据进行一些统计。我很抱歉没有发布示例代码,因为我真的不知道从哪里开始。

我的数据如下:

总共有 3 笔交易被分解成碎片,我们的目标是将它们组合成 3 笔完整的独立交易以供进一步分析。

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

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 

【问题讨论】:

标签: python pandas


【解决方案1】:
aggs = {"Price":"mean", "Qty":"sum","Time":"min"}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2013-02-14
    • 2018-04-15
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多