每个列 A 值的列 B 值的平均值

Average of column B values per column A value

目标:附加列 Mean,每列 Model 传播相同的平均值。

我想附加每个 ModelTime 分数的 mean

Mean 值应该相同,根据 Model

df 已在此分组订单中。

df:

Model | Time
-------------
bert | 0.0001432
bert | 0.0001123
mlp | 0.2321
mlp | 0.2324

想要df

Model | Time | Mean
-------------------
bert | 0.0001432 | 0.00012775
bert | 0.0001123 | 0.00012775
mlp | 0.2321 | 0.23225
mlp | 0.2324 | 0.23225

代码:

models = df.Model.unique()
mean = df.groupby('a')['b'].mean()
for m in models:
    sums[m]

df2 = df.assign(Average = mean)

如果还有什么我可以添加到 post 来澄清的,请告诉我。

使用 transform('mean') 而不是 mean() 来广播每一行的值:

df['Mean'] = df.groupby('Model').transform('mean')
print(df)

# Output
  Model      Time      Mean
0  bert  0.000143  0.000128
1  bert  0.000112  0.000128
2   mlp  0.232100  0.232250
3   mlp  0.232400  0.232250

值未四舍五入:

with pd.option_context('display.float_format', '{:,.10f}'.format):
    display(df)

# Output:
  Model         Time         Mean
0  bert 0.0001432000 0.0001277500
1  bert 0.0001123000 0.0001277500
2   mlp 0.2321000000 0.2322500000
3   mlp 0.2324000000 0.2322500000