现在,我想添加一个新列,它将显示每天的平均功率(假设数据每5分钟采样一次),但是当它是day_or_night(day = 0 in the column,night = 1)。我已经走到了这一步:
train['avg_by_day'][train['day_or_night']==1] = train['power'][train['day_or_night']==1].mean()
train['avg_by_day'][train['day_or_night']==0] = train['power'][train['day_or_night']==0].mean()
但这只是增加了与日相对应的所有功率值的平均值,或类似地 - 夜晚,这不是我之后的情况:每天/每晚的特定平均值。
我需要这样的东西:火车[' avg_by_day'] == train.power.mean()当天== 1和day_or_night == 1,这是每天。
答案 0 :(得分:2)
因此,您希望按day
和day_or_night
对数据框进行分组,并为每个组创建一个平均值为power
的新列:
train['avg_by_day'] = train.groupby(['day','day_or_night'])['power']\
.transform('mean')
也许您还应该在分组列中添加year
和month
,否则它会将每个月的第一天分组,第二天分组,依此类推。