我有一个daily以下格式的数据帧(YYYY-MM-DD)。每个日期在Type列中有2种类型,分别是"one_answers"B".
Date Type Value
2010-01-01 A 8
2010-01-01 B 5
2010-01-02 A 81
2010-01-02 B 7
......
2020-06-23 A 7
2020-06-23 B 7.1
2020-06-24 A 8
2020-06-24 B 11
...........
2021-10-09 A 5
2021-10-09 B 17
2021-10-10 A 1
2021-10-10 B 10
我想将未来日期附加到这个数据帧,直到当前月的最后一个日期,这样未来日期的值等于过去10年该特定日期的平均值,类型为.
For date20121-10-11;A型= 2011 ~ 2020年10月11日A型值的平均值,以此类推。我想填充这些未来值,直到当前月的最后一天。
Date Type Value
2021-10-11 A Avg for 11 Oct from 2011 to 2020
2021-10-11 B Avg for 11 Oct from 2011 to 2020
..........
2021-10-31 A Avg for 31 Oct from 2011 to 2020
2021-10-31 B Avg for 31 Oct from 2011 to 2020
我如何实现这个熊猫。
我在过滤df仅为过去10年的数据后尝试如下:
df = df.groupby([df.index.month, df.index.day, "Type"]).mean()
但是如何将值插入到数据框架中呢?
感谢我认为这个复杂的代码片段将工作。我不知道是否有简单的方法。
df.index = df.Date
df["new"] = df.Date.astype(str).str[-5:]
df=df.groupby(["new","Type"],sort=False).expanding().mean().reset_index().sort_values(["Date","Type"]).reset_index(drop=True)
df["Value"] = df.groupby(["new","Type"]).shift().Value
df=df[["Date","Type","Value"]]