2017-02-11 8 views
0

Iのコード行で、[(X)pd.concatの結果を以下の表に回動しようとしています:パイソンパンダ - エラーピボットテーブル混合値型と

df = pd.concat(x).pivot_table(index=["SECURITY", "DATE"], columns="variable", values="value") 

      DATE  SECURITY  value   variable 
0 2017-02-01 EDH8 COMDTY  98.365   PX_LAST 
1 2017-02-02 EDH8 COMDTY  98.37   PX_LAST 
2 2017-02-03 EDH8 COMDTY  98.36   PX_LAST 
3 2017-02-06 EDH8 COMDTY  98.405   PX_LAST 
4 2017-02-07 EDH8 COMDTY  98.41   PX_LAST 
5 2017-02-08 EDH8 COMDTY  98.435   PX_LAST 
6 2017-02-09 EDH8 COMDTY  98.395   PX_LAST 
0 2017-02-01 EDH8 COMDTY 1.00804e+06   OPEN_INT 
1 2017-02-02 EDH8 COMDTY 1.00999e+06   OPEN_INT 
2 2017-02-03 EDH8 COMDTY 1.01918e+06   OPEN_INT 
3 2017-02-06 EDH8 COMDTY 1.02386e+06   OPEN_INT 
4 2017-02-07 EDH8 COMDTY 1.02461e+06   OPEN_INT 
5 2017-02-08 EDH8 COMDTY 1.04626e+06   OPEN_INT 
6 2017-02-09 EDH8 COMDTY 1.05029e+06   OPEN_INT 
0 2017-02-01 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
1 2017-02-02 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
2 2017-02-03 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
3 2017-02-06 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
4 2017-02-07 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
5 2017-02-08 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 
6 2017-02-09 EDH8 COMDTY 2018-03-19 LAST_TRADEABLE_DT 

これがもたらしますしかし次のエラー:DataError:集計する数値型はありません。何か案は?ありがとう!

答えて

1

aggfuncとは異なる、ほとんど任意のものを選ぶことができます。あなたは1つの要素だけを操作するつもりです。たとえば、sum:など

In [37]: df.pivot_table(index=["SECURITY", "DATE"], 
         columns="variable", values="value", 
         aggfunc=sum) 
Out[37]: 
variable    LAST_TRADEABLE_DT  OPEN_INT PX_LAST 
SECURITY DATE            
EDH8 COMDTY 2017-02-01  2018-03-19 1.00804e+06 98.365 
      2017-02-02  2018-03-19 1.00999e+06 98.37 
      2017-02-03  2018-03-19 1.01918e+06 98.36 
      2017-02-06  2018-03-19 1.02386e+06 98.405 
      2017-02-07  2018-03-19 1.02461e+06 98.41 
      2017-02-08  2018-03-19 1.04626e+06 98.435 
      2017-02-09  2018-03-19 1.05029e+06 98.395 

またはmin、またはmax、あなたは非数値と数値列を混合している場合、あなたのvalue列はdtype=objectであることを行っている、とあなたが行っていることに注意してください結果の列を適切にdtypedしているかどうかを再数値化する(?)必要があります。

1

value列のデータ型が数値型かどうかを確認することもできます。そうしないと(たとえば文字列/日付)、デフォルトの集計関数に問題が発生する可能性があります。その場合、別のaggfuncを明示的に使用することができます(アレイに格納するなど)。

official document,values : column to aggregate, optional,aggfunc : function or list of functions, default numpy.meanによると、

関連する問題