2017-04-14 80 views
0

朋友。 我尝试将csv中的数据与熊猫分组。 我有下一个CSV表: 埃姆斯=(“日期时间”,“动作”,“价格”,“计数”)Python熊猫groupby datetime和多个参数

11.04.2017 11:45 BUY 1,06475 1 
11.04.2017 11:45 BUY 1,0648 1 
11.04.2017 11:45 BUY 1,06485 2 
11.04.2017 11:46 BUY 1,0649 18 
11.04.2017 11:46 SELL 1,06485 2 
11.04.2017 11:46 BUY 1,06485 1 
11.04.2017 11:46 SELL 1,06485 4 
11.04.2017 11:46 SELL 1,06485 1 
11.04.2017 11:50 SELL 1,0646 1 
11.04.2017 11:50 SELL 1,0646 1 
11.04.2017 11:50 SELL 1,0646 1 
11.04.2017 11:51 SELL 1,0646 2 
11.04.2017 11:51 SELL 1,0646 5 
11.04.2017 11:51 BUY 1,0646 3 
11.04.2017 11:51 SELL 1,0646 8 
11.04.2017 11:51 BUY 1,06465 2 
11.04.2017 11:51 SELL 1,06465 3 
11.04.2017 11:51 SELL 1,06465 1 
11.04.2017 11:51 SELL 1,06465 1 

,我需要用5分钟的时间和价格等这组数据:

11.04.2017 11:45  SELL BUY 
     1,06455 26 1 
     1,0646 3 19 
     1,06465 43 23 
     1,0647 15 13 
     1,06475 12 21 
     1,0648 45 26 
     1,06485 27 24 
     1,0649 0 29 

    11.04.2017 11:50 1,0646 34 31 
     1,06465 26 32 
     1,0647 0 3 

任何人都可以帮我吗?

+4

[时间窗熊猫集团]的可能的复制(http://stackoverflow.com/questions/22769047/pandas-group-by-time -视窗) – tmrlvi

回答

0

IIUC你可以做类似的东西foloowing:

In [26]: df.groupby([pd.Grouper(key='datetime', freq='5T'), 'operation']) \ 
      .agg({'price':'mean', 'count':'sum'}) \ 
      .unstack('operation') 
Out[26]: 
         price   count 
operation     BUY  SELL BUY SELL 
datetime 
2017-11-04 11:45:00 1.064830 1.064850 23 7 
2017-11-04 11:50:00 1.064625 1.064617  5 23