我目前正在努力使用 pandas 0.8.0b1 的重新采样功能。
例如,当我尝试将(使用“平均值”)10 分钟值聚合为每月值时,该函数似乎使用一个月的最后一天数据作为下个月的平均值......
这是一个包含 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
你可以帮帮我吗 ????是bug吗???