【发布时间】:2020-10-16 10:46:57
【问题描述】:
我有一个 df 如下所示:
为数据框添加代码:
df = pd.DataFrame({'Name':['John']*12
,'Type':[*'AABBBBAAABAB']
,'Period':['Noon','Morning']*6
,'Date':['1/1/2020']*2+['1/4/2020']*2+
['1/5/2020']*2+['1/2/2020']*2+
['1/3/2020']*2+['1/19/2020', '1/31/2020']
,'value':[1,2,7,8,9,10,3,4,5,6,5,6]}, index=range(1,13))
基本上我需要一个人(以约翰为例)的值的连续 2 天移动平均值,按类型和时期分类(人也是,但不在此表中)。
预期结果如最后一列所示。
例如1。第 4 行,John 在 Morning 中的 B 型,2020 年 1 月 4 日和 2020 年 1 月 3 日(第 10 行)的平均值为 (6+8)/2=7,
并且在 2020 年 1 月 3 日之前没有 John 的 B 型数据,因此 row10 结果为na
例如 2。第 11 行和第 12 行,它们不是连续的日期,所以都是na
如何使用pandas来实现这个功能?我应该使用transform 还是rolling?
【问题讨论】:
-
请将您的数据作为文本而不是图像。
-
是的,我应该感谢..
标签: pandas moving-average