我有一个数据列,其中包含列X
Y
temperature
Label
label是1到9之间的整数
我想增加一列my_label_mean_temperature
,该列将为每行包含具有相同标签的行的温度平均值。
我很确定我需要从my_df.groupby('label')
开始,但是不确定如何计算温度平均值并在原始数据帧的所有行上传播这些值
答案 0 :(得分:1)
您的问题可以通过transform
大熊猫方法解决。
您可以尝试这样的事情:
df['my_label_mean_temperature'] = df.groupby(['label']).transform('mean')
答案 1 :(得分:0)
像这样吗?
df = pd.DataFrame(data={'x':np.random.rand(19),
'y':np.arange(19),
'temp':[22,33,22,55,3,7,55,1,33,4,5,6,7,8,9,4,3,6,2],
'label': [1,2,3,4,2,3,9,3,2,9,2,3,9,4,1,2,9,7, 1]})
df['my_label_mean_temperature'] = df.groupby(['label'], sort=False)['temp'].transform('mean')
答案 2 :(得分:0)
df ['my_label_mean_temperature'] = df.groupby('label',as_index = False)['temperature']。mean()