一个与另一个的平均值或 python 中的平均值

average of one wrt another or averageifs in python

我有一个显示的 pandas df 我想计算 DC 按品牌的平均利率 列,这类似于 excel 中的 averageif , 我尝试过像 groupby mean() 这样的方法,但没有给出正确的结果

您的问题不清楚,但您可能正在寻找:

df.groupby(['DC','Brand'])['Rate'].mean()

AVERAGEIF in excel returns 与原始数据大小相同的列。所以我认为您正在寻找 pandas.transform():

# Sample DF

   Brand  Rate
0      A    45
1      B   100
2      C    28
3      A    92
4      B     2
5      C    79
6      A    48
7      B    97
8      C    72
9      D    14
10     D    16
11     D    64
12     E    85
13     E    22

结果:

df['Avg Rate by Brand'] = df.groupby('Brand')['Rate'].transform('mean')

print(df)

   Brand  Rate  Avg Rate by Brand
0      A    45          61.666667
1      B   100          66.333333
2      C    28          59.666667
3      A    92          61.666667
4      B     2          66.333333
5      C    79          59.666667
6      A    48          61.666667
7      B    97          66.333333
8      C    72          59.666667
9      D    14          31.333333
10     D    16          31.333333
11     D    64          31.333333
12     E    85          53.500000
13     E    22          53.500000