我需要使用 numpys weighted-average-function 重新采样一些数据 - 它只是不起作用......
这是我的测试用例:
import numpy as np
import pandas as pd
time_vec = [datetime.datetime(2007,1,1,0,0)
,datetime.datetime(2007,1,1,0,1)
,datetime.datetime(2007,1,1,0,5)
,datetime.datetime(2007,1,1,0,8)
,datetime.datetime(2007,1,1,0,10)
]
df = pd.DataFrame([2,3,1,7,4],index = time_vec)
how
没有权重的正常重采样工作正常(这里建议使用 lambda 函数作为参数: Pandas resampling using numpy percentile?谢谢!):
df.resample('5min',how = lambda x: np.average(x[0]))
但是如果我尝试使用一些权重,它总是返回一个TypeError: Axis must be specified when shapes of a and weights differ
:
df.resample('5min',how = lambda x: np.average(x[0],weights = [1,2,3,4,5]))
我尝试了许多不同数量的权重,但并没有变得更好:
for i in xrange(20):
try:
print range(i)
print df.resample('5min',how = lambda x:np.average(x[0],weights = range(i)))
print i
break
except TypeError:
print i,'typeError'
我很高兴有任何建议。