2016-07-22 5 views
1

私は毎日のDatetimeIndexを持つPandas DataFrameを持っています。私は、インデックスの周波数気づいPandasのReindexメソッドが設定された頻度を守らない

>>> aggVols.resample('M',axis=1).sum() 

しかし、私はこれをしようとすると、私はエラー

TypeError: Only valid with DatetimeIndex or PeriodIndex 

を得る:私はこのような毎月のシリーズに値を合計するリサンプル法を適用しようとしています(None)が設定されていません。

>>>aggVols.index 
<class 'pandas.tseries.index.DatetimeIndex'> 
[2016-01-04, ..., 2016-07-01] 
Length: 130, Freq: None, Timezone: None 

は、だから私は、最初の毎日に周波数を設定(営業日)と私はリサンプルを適用することができるようにインデックスをリセット:

>>> aggVols = aggVols.reindex(aggVols.asfreq('B').index) 
>>> aggVols.index 
<class 'pandas.tseries.index.DatetimeIndex'> 
[2016-01-04, ..., 2016-07-01] 
Length: 130, Freq: B, Timezone: None 

しかし、私はまだ私達の再サンプリング機能の同じエラーを取得しています:

TypeError: Only valid with DatetimeIndex or PeriodIndex 

インデックスの何が問題になっているのですか?なぜそれは有効ではないのですか? 頻度をDに設定すると同じエラーが発生します。

ありがとうございます!

+0

です。DataFrameのサンプルを投稿してください。 – Alex

答えて

0

変更は

aggVols.resample('M',axis=1).sum() 

aggVols.resample('M',axis=0).sum() 

あなたDatetimeIndex

に行(いない列)です。

一般に、軸0は行であり、軸1は列であり、軸2は高さであり、軸3-N ...よりよく抽象的に考えられる。

the NumPy docsの「軸に沿って」セクションを参照してください。

+0

返事をありがとう。あなたは正しい、DatetimeIndexは行(列ではない)のためのものです。だから私は間違った軸を指定しているかもしれません。しかし、あなたが示唆しているのは、私に列あたり1つの数字を与えます。それは毎月のシリーズを生産していません。 '>>> aggVols.resample(' M」、軸= 0).SUM() CMX 114237.608293 LME 1425516.887879 SHF 50861180.513820 DTYPE:のfloat64' – David

+0

@デビッドあなたはデータフレームの行全体で合計したいですか? – Alex

+0

@DavidサンプルのDataFrameと目的の結果を投稿すると役に立ちます。 – Alex

0

最後に表示されます。終了時の操作でメソッドを間違った方法で使用していたかのように、それがシリーズであるかのようです。正しいコードは

aggVols.resample('M',axis=0,how=sum) 
関連する問題