50

パンダの asfreq メソッドと resample メソッドの違いを説明してください。いつ何を使うべきですか?

4

2 に答える 2

43

resampleよりも一般的ですasfreq。たとえば、resampleI を使用すると、任意の関数を渡して、任意のサイズのビン内のSeriesまたはオブジェクトに対してビニングを実行できます。オブジェクトの周波数を変更する簡潔な方法です。また、パディング機能も提供します。DataFrameasfreqDatetimeIndex

パンダのドキュメントにあるように、 への呼び出し+asfreqへの呼び出しの薄いラッパーです。例については、こちらを参照してください。date_rangereindex

resample私が日常業務で使用している例は、 True「スパイク」をFalse意味し「スパイクなし」を意味する大きなブール配列をリサンプリングすることにより、1 秒ビン内のニューロンのスパイク数を計算することです。と同じくらい簡単にできますlarge_bool.resample('S', how='sum')。ちょっとすっきり!

asfreqDatetimeIndex現在のインデックスで同じ値を保持しながら、a を別の周波数に変更する場合に使用できます。

それらが同等である例を次に示します。

In [6]: dr = date_range('1/1/2010', periods=3, freq=3 * datetools.bday)

In [7]: raw = randn(3)

In [8]: ts = Series(raw, index=dr)

In [9]: ts
Out[9]:
2010-01-01   -1.948
2010-01-06    0.112
2010-01-11   -0.117
Freq: 3B, dtype: float64

In [10]: ts.asfreq(datetools.BDay())
Out[10]:
2010-01-01   -1.948
2010-01-04      NaN
2010-01-05      NaN
2010-01-06    0.112
2010-01-07      NaN
2010-01-08      NaN
2010-01-11   -0.117
Freq: B, dtype: float64

In [11]: ts.resample(datetools.BDay())
Out[11]:
2010-01-01   -1.948
2010-01-04      NaN
2010-01-05      NaN
2010-01-06    0.112
2010-01-07      NaN
2010-01-08      NaN
2010-01-11   -0.117
Freq: B, dtype: float64

いつどちらを使用するかについては、考えている問題によって異なります...共有したいですか?

于 2013-08-05T14:54:40.703 に答える