Python 如何使用熊猫按10分钟对时间序列进行分组?

Python 如何使用熊猫按10分钟对时间序列进行分组?,python,pandas,Python,Pandas,将时间序列(ts)按DatatimeIndex编制索引,并按10分钟对其进行分组 index x y z ts1 .... ts2 .... ... 我知道如何按1分钟分组 def group_by_minute(timestamp): year = timestamp.year month = timestamp.month day = timestamp.day hour = timestamp.hour minute =

将时间序列(ts)按DatatimeIndex编制索引,并按10分钟对其进行分组

index   x  y  z

ts1     ....
ts2     ....
...
我知道如何按1分钟分组

def group_by_minute(timestamp):
    year = timestamp.year
    month = timestamp.month
    day = timestamp.day
    hour = timestamp.hour
    minute = timestamp.minute
    return datetime.datetime(year, month, day, hour, minute)
然后

我的定制功能(大致)

因此ts数据帧应该明确包含“纬度”和“经度”列

使用TimeGrouper时

   ts.groupby(pd.TimeGrouper(freq='100min')).apply(my_function)
我犯了以下错误

TypeError: cannot concatenate a non-NDFrame object

对于这类事情,有一个
pandas.timegropper
,您描述的是这样的事情:

agg_10m = df.groupby(pd.TimeGrouper(freq='10Min')).aggregate(numpy.sum) #or other function

我知道这很古老,但pd.gropper()也可以实现这一点:

agg_10m = df.groupby(pd.Grouper(freq='10Min')).aggregate(numpy.sum)

您是否尝试过重新采样?例如,
df.重采样('1min','mean')
doing@JoeCondron我正在应用自定义函数和应用函数。在我看来,即使有一年的时间间隔,重采样或TimeGrouper也会自动填补空白。有没有办法防止这种情况发生?非常感谢,您可以传递自定义函数,如:
df.resample('10min',how=my_func)
。除非你告诉它,否则它不会填补空白。也许你应该发布你想要传递的函数和期望的输出。或者,您可以将函数的最后一行调整为
minute=10*(minute/10)
@JoeCondron谢谢您的建议。我已经切换到重采样,它几乎可以工作。仅重采样获取df的第一列,它是否同时应用于df的多个列?我将重新编辑我的函数,使之成为问题。thx againthx用于响应。看起来pd.timegropper确实存在,但是这里没有记录,哦,你是对的。永远不要注意它是未记录的。通过应用TimeGrouperTimeGrouper获取一个“TypeError:无法连接非NDFrame对象”。TimeGrouper有点记录在案——它在烹饪书中,这很奇怪,但似乎没有超出这一范围。是时间分组的标准方法;这会创建一个TimeGrouper,它不是公开的,因为旧的已经不推荐了。
agg_10m = df.groupby(pd.TimeGrouper(freq='10Min')).aggregate(numpy.sum) #or other function
agg_10m = df.groupby(pd.Grouper(freq='10Min')).aggregate(numpy.sum)