如何实现我自己的describe()函数在resample()中使用

我正在使用表示向量(大小和方向)的时间序列数据.我想要 resample我的数据并使用describe函数作为how参数.

但是,describe方法使用标准平均值,我想使用特殊函数来平均方向.因此,我实现了自己的基于pandas.Series.describe()实现的describe方法

def directionAverage(x):
    result = np.arctan2(np.mean(np.sin(x)),np.mean(np.cos(x)))
    if result < 0:
        result += 2*np.pi
    return result

def directionDescribe(x):
    data = [directionAverage(x),x.std(),x.min(),x.quantile(0.25),x.median(),x.quantile(0.75),x.max()]
    names = ['mean','std','min','25%','50%','75%','max']
    return Series(data,index=names)

问题是当我这样做时:

df['direction'].resample('10Min',how=directionDescribe)

我得到了这个例外(最后几行显示):

File "C:\Python26\lib\site-packages\pandas\core\generic.py",line 234,in resample
    return sampler.resample(self)
  File "C:\Python26\lib\site-packages\pandas\tseries\resample.py",line 83,in resample
    rs = self._resample_timestamps(obj)
  File "C:\Python26\lib\site-packages\pandas\tseries\resample.py",line 217,in _resample_timestamps
    result = grouped.aggregate(self._agg_method)
  File "C:\Python26\lib\site-packages\pandas\core\groupby.py",line 1626,in aggregate
    result = self._aggregate_generic(arg,*args,**kwargs)
  File "C:\Python26\lib\site-packages\pandas\core\groupby.py",line 1681,in _aggregate_generic
    return self._aggregate_item_by_item(func,line 1706,in _aggregate_item_by_item
    result[item] = colg.aggregate(func,line 1357,in aggregate
    result = self._aggregate_named(func_or_funcs,line 1441,in _aggregate_named
    raise Exception('Must produce aggregated value')

问题是:如何实现我自己的describe函数,以便它可以与resample一起使用?

解决方法

您可以将组合作为一个时间单位,而不是重新采样.对于该组,您可以应用您选择的功能,例如您的directionAverage功能.

请注意,我正在导入TimeGrouper函数以允许按时间间隔进行分组.

import pandas as pd
import numpy as np
from pandas.tseries.resample import TimeGrouper

#group  your data
new_data = df['direction'].groupby(TimeGrouper('10min'))
#apply your function to the grouped data
new_data.apply(directionDescribe)

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...