我正在尝试计算大型数据集过去 n 天(n = 30)的滚动平均值。
在 Pandas 中,我将使用以下命令:
temp = chunk.groupby('id_code').apply(lambda x: x.set_index('entry_time_flat').resample('1D').first())
dd = temp.groupby(level=0)['duration'
].apply(lambda x: x.shift().rolling(min_periods = 1,window = n_days).mean()
).reset_index(name = "avg_delay_"+ str(n_days) + "_days")
chunk = pd.merge(chunk, dd, on=['entry_time_flat', 'id_code'], how='left'
).dropna(subset = ["avg_delay_"+ str(n_days) + "_days"])
基本上,该函数按“id 代码”进行分组,并在“entry_time_flat”(日期时间对象)的最后 n 天中计算特征“duration”的平均值。
然而,为了保持代码高效,最好在 Dask 数据帧上重现此函数,而不将其转换为 Pandas DF。
如果我在 Dask DF 上运行上述代码,则会引发以下错误:
TypeError: __init__() got an unexpected keyword argument 'level'
最终,我如何计算 Dask 数据帧上过去 n 天的“持续时间”列的平均值?
最终,我如何计算 Dask 数据帧上过去 n 天的“持续时间”列的平均值?
滚动 API 应该为您提供此功能
https://docs.dask.org/en/latest/dataframe-api.html#rolling https://docs.dask.org/en/latest/dataframe-api.html#rolling
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)