熊猫MultiIndex DataFrame.rolling偏移量

脚湿:

为什么在rolling多索引DataFrame 时不能使用偏移量例如,使用:

rng = pd.date_range('2017-01-03', periods=20, freq='8D')
i = pd.MultiIndex.from_product([['A','B','C'], rng], names=['Name','Date'])
df = pd.DataFrame(np.random.randn(60), i, columns=['Vals'])

如果我尝试使用偏移量进行分组和滚动,则会出现“ ValueError:窗口必须为整数 ”:

df['Avg'] = df.groupby(['Name'])['Vals'].rolling('30D').mean() # << Why doesn't this work?

并不是以下这些变体可以满足我的需求,但请注意对int作品进行分组和滚动

df['Avg'] = df.groupby(['Name'])['Vals'].rolling(4).mean()

而且我可以在DataFrame的单索引子集上使用偏移量滚动:

d = df.loc['A']
d['Avg'] = d['Vals'].rolling('30D').mean()

如果确实不可能在多索引DataFrame上进行偏移滚动,那么将零应用于每个0级索引项的最有效的解决方法是什么?

约翰·E:

为了使用类似“ 30D”的偏移量,您需要一个简单的日期索引。在这种情况下,最简单的实现方法是使用,将“名称”移出索引reset_index(level='Name'),而只将“日期”作为索引:

df['Avg'] = df.reset_index(level='Name').groupby(['Name'])['Vals'].rolling('30D').mean()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫MultiIndex DataFrame排序

在熊猫中查询MultiIndex DataFrame

具有不同偏移量矢量的熊猫矢量化日期偏移量操作

熊猫-使用列作为偏移量的日期差

熊猫:从每周到每天重新采样(偏移量)

如果偏移量太大,则用NaN填充熊猫列

如何为熊猫datetime添加时区偏移量?

熊猫从最近的年终日期重新采样偏移量?

在熊猫的时间戳中添加偏移量

给定段的长度和段的偏移量,如何从大熊猫的起点开始创建偏移量?

在熊猫MultiIndex DataFrame中选择行

慢熊猫DataFrame MultiIndex重新索引

熊猫DataFrame-> GroupBy-> MultiIndex Process

熊猫:合并multiIndex DataFrame的标题行

创建没有NaN的熊猫MultiIndex Dataframe

熊猫DataFrame偏移列

熊猫-用MultiIndex DataFrame中的系列除以DataFrame值

如何在 Pandas Dataframe 中为 TimedeltaIndex 添加偏移量

偏移量前滚加上加一个月的偏移量后,熊猫超出了纳秒级时间戳

熊猫滚动窗口和日期时间索引:“偏移量”是什么意思?

(-)MonthBegin的熊猫日期时间锚定偏移量未按预期工作

如何在熊猫中创建具有偏移量的滚动时间窗口

熊猫数据帧日期时间 - 将字符串转换为日期时间偏移量

在熊猫MultiIndex DataFrame中按级别求和列

仅转置熊猫MultiIndex dataFrame的一级

在熊猫DataFrame中基于MultiIndex提取组的头部

熊猫:向仅包含1行的DataFrame添加MultiIndex

熊猫MultiIndex Dataframe滚动平均值分组

熊猫DataFrame每年从MultiIndex DateIndex获得第1天