Numpy 按箱和时间使用熊猫对数据进行双重分组

Numpy 按箱和时间使用熊猫对数据进行双重分组,numpy,pandas,group-by,grouping,binning,Numpy,Pandas,Group By,Grouping,Binning,我试图在一个时间窗口内存储时间序列中的值(每小时和每小时温度值)。 也就是说,从原始的小时值中,我想每天、每周或每月提取装箱值。 我曾尝试将groupby+TimeGrouper(“”)与pd.cut相结合,但效果不佳 我在这里遇到了一个很好的函数,它建议映射数据(在下一列中将每个值与其映射范围关联),然后根据该值进行分组 def map_bin(x, bins): kwargs = {} if x == max(bins): kwargs['right'] =

我试图在一个时间窗口内存储时间序列中的值(每小时和每小时温度值)。 也就是说,从原始的小时值中,我想每天、每周或每月提取装箱值。 我曾尝试将
groupby
+
TimeGrouper(“”
)与
pd.cut
相结合,但效果不佳

我在这里遇到了一个很好的函数,它建议映射数据(在下一列中将每个值与其映射范围关联),然后根据该值进行分组

def map_bin(x, bins):
    kwargs = {}
    if x == max(bins):
        kwargs['right'] = True
    bin = bins[np.digitize([x], bins, **kwargs)[0]]
    bin_lower = bins[np.digitize([x], bins, **kwargs)[0]-1]
    return '[{0}-{1}]'.format(bin_lower, bin)

df['Binned'] = df['temp'].apply(map_bin, bins=freq_bins)
但是,应用此函数会导致索引器错误:索引n超出大小为n的轴0的界限


理想情况下,我希望能够实现这一点,并将其应用于同时实现双重分组:一个按箱子分组,一个按时间分组。

更新:
由于双索引列,我先前的尝试似乎导致了问题。我已经简化为一些似乎工作得更好的东西

import pandas as pd
import numpy as np
xaxis = np.linspace(0,50)
temps = pd.Series(data=xaxis,name='temps')
times = pd.date_range(start='2015-07-15',periods=50,freq='6H')
temps.index = times

bins = [0,10,20,30,40,50]

temps.resample('W').agg(lambda series:pd.value_counts(pd.cut(series,bins),sort=False)).unstack()
这将产生:

           (0, 10]  (10, 20]    (20, 30]    (30, 40]    (40, 50]
2015-07-19       9        10           0           0           0
2015-07-26       0         0          10          10           8
2015-08-02       0         0           0           0           2

阿尔顿,我想按箱子和按天/周分组,同时哈,那太简单了!!比如说,我有一个传感器每小时记录一次室温(实际上是10/15分钟,但我在熊猫身上重新取样)。因此,我的df非常简单:第一列:时间戳(索引),第二列:温度如果我的箱子是[20,22,24,26,28,30],我想以这样一种方式对数据进行分组,我知道20