我想在数据框交易(在 Python 中)中估算“销售”列的值。即,将产品的销售额 例如,我的数据采用以下结构:Category,Brand,SalesFood , pp , 100Food , pp , 200Food , pp , 10Cream , xy , 40Cream , xy , 2Cream , xy , 60第 3 行(食品和 pp)的销售额,即 10 应替换为 Food 和 PP 组中所有销售额的平均值,即 100 + 200/2 = 150 [不包括销售额为 10 的第 3 行]。同样适用于第 5 行,即 2 应替换为 Cream 和 xy 的销售额平均值,即 (60 +40)/2 = 50 [不包括第 5 行]。 最佳答案 将 transform 用于每组与原始 mean 大小相同的过滤值的 df ,因此可以用 numpy.where 替换条件:a = df.groupby(['Category','Brand'])['Sales'].transform(lambda x: x[x >= 20].mean())df['Sales'] = np.where(df['Sales'] < 20, a, df['Sales'])替代解决方案:a = df[df['Sales']>= 20].groupby(['Category','Brand'])['Sales'].mean()b = df.drop('Sales', 1).join(a, on=['Category','Brand'])['Sales']df['Sales'] = np.where(df['Sales'] < 20, b, df['Sales'])print (df) Category Brand Sales0 Food pp 1001 Food pp 2002 Food pp 1503 Cream xy 404 Cream xy 505 Cream xy 60关于python - 用 python Dataframe 的类似组中的销售额的平均值替换产品的销售额 < 20,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50245727/