按多个实体列分组并执行滚动平均值和滚动标准差

时间:2018-02-05 14:07:37

标签: pandas pandas-groupby

我有一个"大"混合数据集。其结构如下所示:

<class 'pandas.core.frame.DataFrame'>
  RangeIndex: 8667486 entries, 0 to 8667485
  Data columns (total 7 columns):
  src         uint16
  dst         uint16
  seq         uint64
  signal      uint8
  noise       uint8
  bitrate     float32
  snr         int16
  dtypes: float32(1), float64(1), int16(1), uint16(2), uint64(1), uint8(2)
  memory usage: 231.4 MB

我希望实现的目标是按srcdstbitrate进行分组,然后对组进行标准偏差和滚动平均值的平均值。对于大结局,我想将其添加回原始DataFrame。我需要它作为ML功能之一。

我不确定这是否是正确的道路,但这就是它停止的地方:

df.groupby(['src', 'dst', 'bitrate'])[['snr']].rolling(w_size).mean()

df.groupby(['src', 'dst', 'bitrate'])[['snr']].rolling(w_size).std()

结果是MultiIndex DataFrame,我不知道如何将它添加到原始Dataframe。

我认为按顺序编号排序也必须在代码中的某处进行,以确保滚动平均值的正确性。

1 个答案:

答案 0 :(得分:-1)

如果您创建dfgrouoed.reset_index(),它将返回单个索引数据框