【问题标题】:Pandas resampling using numpy percentile?Pandas 使用 numpy 百分位数重新采样?
【发布时间】:2013-11-11 06:17:01
【问题描述】:

你在使用pandas函数resample的时候用过百分位numpy函数吗??

考虑到“数据”是一个只有一列包含 10 分钟数据的数据框,我想做这样的事情:

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

我收到以下错误:

'numpy.float64' object is not callable

你试过这个吗?

【问题讨论】:

    标签: python numpy pandas


    【解决方案1】:

    您必须将函数传递给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
    

    【讨论】:

      猜你喜欢
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多