使用较少的no省略.csv文件的某些行。列和阅读其余内容

时间:2015-10-06 09:40:29

标签: r csv dataframe algorithmic-trading read.csv

我在 .csv 文件中包含高频数据,其中包含订单报价和交易报价。以下是600,000行数据集的前13行的示例:(抱歉格式,复制/粘贴不适合一行上的所有列,因此我将它们隔开)

1442527200000750850 11539422 15110 1 1 15120 4 3 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 0 0 0 15170 6 1

1442527200000750850 11539422 15110 1 1 15120 4 3 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 15060 3 3 15170 6 1

1442527200000750850 11539422 15110 1 1 15120 2 2 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 15060 3 3 15170 6 1

1442527200024857519 11539479 15115 1 1 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 6 1

1442527200024960184 11539480 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 6 1

1442527200025091242 11539482 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2

1442527200060240623 11539555 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2

1442527200065644806 11539556 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2

1442527200088944431 11539565 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2

1442527200088944431 11539565 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2

1442527200323230870 11539621 15115 3 3 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2

1442527200323600606 11539622 15115 3 3 15120 1 1 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2

1442527200324698612 11539623 15120 1 1

如您所见,此示例中的最后一行只有5列,而其他行则有更多列。只有5列的行是交易执行行,其余是订单报价。基本上,我想阅读csv文件,同时省略只有5列的交易行,并阅读文件的其余部分,以便我可以在Bid / Ask引号上开始分析。

我尝试使用 read.csv() 函数,但我似乎无法想象如何编写代码来跳过交易行(5个列行)并且只读取订单引号,它会读取所有内容,并为交易行中的空列提供 NaN 。我也尝试打开连接,然后使用扫描功能,但再次面临同样的问题。有没有办法在其中的某处放置 if 语句并省略行或其他任何方式?

如果需要,数据格式如下:

ORDER_BOOK: ( timestamp_in_ns ) ( feed-sequence-number ) x bid_price_in_USD, bid_qty, number_of_bid_orders, ask_price_in_USD, ask_qty, number_of_ask_orders, ..... 

OR

TRADE:      ( timestamp_in_ns ) ( feed-sequence-number ) trade_price_in_USD, trade_qty, trade_side ( 1 for Buy and 2 for Sell, might be 0 if CME doesn't give us this information for some trade )

数据集中没有标题,对象由 ""

分隔

非常感谢任何帮助。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您可以使用c.a = 10 # or setattr(c,'a',10) or c.__setattr('a',10) # c.b becomes 5 c.b = 10 # c.a becomes 20 来检测完整的行:

complete.cases