【发布时间】:2021-11-22 11:54:44
【问题描述】:
鉴于此数据框 df:
date type target
2021-01-01 0 5
2021-01-01 0 6
2021-01-01 1 4
2021-01-01 1 2
2021-01-02 0 5
2021-01-02 1 3
2021-01-02 1 7
2021-01-02 0 1
2021-01-03 0 2
2021-01-03 1 5
我想创建一个新列,其中包含按类型划分的昨天的目标平均值。
例如,对于第 5 行 (date=2021-01-02, type=0),新列的值将是 5.5,作为前一天目标的平均值,2021-01-01 for type= 0 是 (5+6)/2。
我可以很容易地按日期和类型获得目标分组的平均值:
means = df.groupby(['date', 'type'])['target'].mean()
但我不知道如何使用所需数据在原始数据框上创建一个新列,该列应如下所示:
date type target mean
2021-01-01 0 5 NaN (or null or whatever)
2021-01-01 0 6 NaN
2021-01-01 1 4 NaN
2021-01-01 1 2 NaN
2021-01-02 0 5 5.5
2021-01-02 1 3 3
2021-01-02 1 7 3
2021-01-02 0 2 5.5
2021-01-03 0 2 3.5
2021-01-03 1 5 5
【问题讨论】:
标签: python pandas pandas-groupby