如何在Panda中获得分组窗口?比如窗户..分区依据..来自SQL



Pandas窗口函数,即rolling,工作效果很好。但是从SQL我知道,windows也可以是PARTITIONED BY的某个组。

如何在Panda中获得分组窗口?A:

df.groupby(['group']).rolling('10s').mean()

失败:

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'

如果使用df.rolling('10s', on='group'),它只在'group'为int的情况下有效,即在SQL中,前面/后面有一些具体的行数。我怎样才能按时间保存窗口?

编辑最小样本:

import random
groups = ['A', 'B']
df = pd.DataFrame({'value': range(60), 'group': [random.choice(groups) for i in range(60)]},index=pd.DatetimeIndex(pd.date_range(start='20160101', end='20160229')))
df.head()

以下工作,但不考虑组:

df[['value']].rolling('2d').mean().head()

以下内容不适用于时间窗口:

df[['group','value']].rolling(3, on='group').mean().head()

df.rolling('2D', on='group').mean().head()

尝试使用时间窗口时失败,返回:window must be an integer

删除索引以便分组。我认为是索引列的问题。

df.groupby(['col2','col3'], as_index=False)

相关内容

  • 没有找到相关文章