1

毎日の DatetimeIndex を持つ Pandas DataFrame があります。Resample メソッドを適用して、値を次のような月次シリーズに合計しようとしています。

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

しかし、これを試してみると、エラーが発生します

TypeError: Only valid with DatetimeIndex or PeriodIndex

オブジェクトのインデックスの頻度が設定されていない (なし) ことに気付きました。

>>>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

しかし、私はまだ resample 関数の同じエラーを取得しています:

TypeError: Only valid with DatetimeIndex or PeriodIndex

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

ありがとう!

4

2 に答える 2

0

最後にそれを手に入れました。シリーズものであるかのように、最後の操作でメソッドを間違った方法で使用していました。正しいコードは次のとおりです。

aggVols.resample('M',axis=0,how=sum)
于 2016-07-22T16:01:53.107 に答える
0

変化する

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

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

あなたDatetimeIndexは(列ではなく)行にあります。

一般に、軸 0 は行、軸 1 は列、軸 2 は高さ、および軸 3-N です...まあ、それらはより抽象的に考えられています。

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

于 2016-07-22T15:51:13.340 に答える