2013-10-31 29 views
2

使用熊猫函数重采样时,你有没有使用过百分位数numpy函数?使用numpy百分比重新采样熊猫?

考虑到“数据”是用10分钟的数据只是一列的数据帧,我愿做这样的事情:

dataDaily=data.resample('D',how=np.percentile(data['Col1'],q=90) 

我得到了以下错误:

'numpy.float64' object is not callable 

有你试过这个吗?

回答

4

您必须将函数传递给how参数,而不是值。我觉得你的情况,你可以使用匿名函数(lambda函数):

dataDaily = data.resample('D', how=lambda x: np.percentile(x['Col1'], q=90)) 

例如:

>>> df = pd.DataFrame({'Col1': np.random.randn(10)}) 
>>> df.index = map(pd.Timestamp, ['20130101', '20130102']) * 5) 
>>> df 
       Col1 
2013-01-01 -0.636815 
2013-01-02 -0.028921 
2013-01-01 0.643083 
2013-01-02 0.065096 
2013-01-01 0.446963 
2013-01-02 0.462307 
2013-01-01 2.768514 
2013-01-02 -1.406168 
2013-01-01 0.732656 
2013-01-02 -0.699028 
>>> df.resample('D', how=lambda x: np.percentile(x['Col1'], q=90)) 
       Col1 
2013-01-01 1.954171 
2013-01-02 0.303423