2017-04-14 20 views
0

friends。 私のデータをcsvからpandasにグループ化しようとしています。 私は次のCSVテーブルを持っている: エイムズ=(「日時」、「操作」、「価格」、「数」)Python pandas 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を-windows) – tmrlvi

答えて

0

あなたはfoloowingと似たような行うことができますIIUC:

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 
関連する問題