python - pandas 0.8 重采样中的错误?

标签 python pandas resampling

我目前正在努力使用 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

你能帮我吗???这是一个错误吗???

最佳答案

这确实是一个错误,我有两个问题:

https://github.com/pydata/pandas/issues/1458

https://github.com/pydata/pandas/issues/1471

这应该在 pandas 0.8.0 发布之前修复。请注意,这可以正常工作:

In [15]: df.resample('M', kind='period')
Out[15]: 
          0
Jan-2012  1
Feb-2012  2
Mar-2012  3

编辑:刚刚在 git master 中修复了这个问题(上述两个引用问题都已关闭)

关于python - pandas 0.8 重采样中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018120/

相关文章:

python - 在 Python 2.7 中获取列表长度作为字典中的值

python - cph.plot() : how to make it bigger?

c# - 重采样 WasapiLoopbackCapture

python - 使用 resample 和 groupby - pandas 计算时间序列的百分位数/四分位数

python - 在 Python 中移动 Seaborn 图中的图例

python - 确定 simple_form 对象是否已提交

python - 如何使用基于类的 View 从不同的应用程序渲染 django 中的模板?

Python-在文件打开时读取Excel文件

python - 合并 2 个 csv 文件行

python - 使用给定的时间增量对时间序列进行重采样