将熊猫df中的所有值乘以组内的最大值

时间:2019-05-28 06:57:24

标签: python pandas

我正在尝试为每个特定组返回熊猫df内的最大值。然后,我想使用此最大值来乘以单独的值,然后在单独的列中返回。

例如,使用下面的dfItem中每个组的最大值为:

X = 5
Y = 2

我想使用这些值将所有其他值乘以单独的列。 将熊猫作为pd导入

d = ({
    'Item' : ['X','X','X','Y','Y','Y','Y'],                 
    'Count' : [0,2,5,3,1,2,1],                                      
    })

df = pd.DataFrame(data = d)

这是我的尝试:

df['Mult_max'] = df.groupby('Item').apply(lambda x: x['Count'].max() * x['Count'])

预期输出:

  Group  Value  Mult_max
0     X      0         0
1     X      2        10
2     X      5        25
3     Y      3         9
4     Y      1         3
5     Y      2         6
6     Y      1         3

1 个答案:

答案 0 :(得分:5)

GroupBy.transform用于与最大值填充的原始DataFrame相同的系列:

df['Mult_max'] = df.groupby('Item')['Count'].transform('max') * df['Count']
print (df)
  Item  Count  Mult_max
0    X      0         0
1    X      2        10
2    X      5        25
3    Y      3         9
4    Y      1         3
5    Y      2         6
6    Y      1         3