私は現在、pandas 0.8.0b1 のリサンプリング機能を使用するために戦っています。
たとえば、(「平均」を使用して) 10 分の値を月の値に集計しようとすると、関数は次の月の平均で 1 か月のデータの最終日を使用するようです...
以下は、3 か月の 10 分のデータの単純な時系列の例です。
- 2012 年 1 月 : すべての値 = 1
- 2012 年 2 月 : すべての値 = 2
- 2012 年 3 月 : すべての値 = 3
df.resample('M',how='mean') を使用して取得した月次平均は次のとおりです。
Out[454]:
0
2012-01-31 1.000000
2012-02-29 1.965757
2012-03-31 2.967966
2012-04-30 3.000000
しかし、私は次のようなものを取得したいと思います:
0
2012-02-01 1.000000
2012-03-01 2.000000
2012-04-01 3.000000
コードは次のとおりです。
january = pd.date_range(pd.datetime(2012,1,1),pd.datetime(2012,1,31,23,50),freq='10min')
february = pd.date_range(pd.datetime(2012,2,1),pd.datetime(2012,2,29,23,50),freq='10min')
march = pd.date_range(pd.datetime(2012,3,1),pd.datetime(2012,3,31,23,50),freq='10min')
data_jan = np.zeros(size(january))+1
data_feb = np.zeros(size(february))+2
data_march = np.zeros(size(march))+3
df1 = pd.DataFrame(data_jan,index=january)
df2 = pd.DataFrame(data_feb,index=february)
df3 = pd.DataFrame(data_march,index=march)
df = pd.concat([df1,df2,df3])
df.resample('M',how='mean')
今なら、最終日を次のように削除します。
january = pd.date_range(pd.datetime(2012,1,1),pd.datetime(2012,1,31,00,00),freq='10min')
february = pd.date_range(pd.datetime(2012,2,1),pd.datetime(2012,2,29,00,00),freq='10min')
march = pd.date_range(pd.datetime(2012,3,1),pd.datetime(2012,3,31,00,00),freq='10min')
私は(ほぼ)私が欲しいものを手に入れます:
Out[474]:
0
2012-01-31 1
2012-02-29 2
2012-03-31 3
私たちを手伝ってくれますか ????バグですか???