我正在按值分组,然后稍后合并回到原始表中。我想知道是否有任何方法可以避免这样做。
就像我有一张桌子一样
a b v
A A 9
A B 3
A A 2
B B 4
B B 3
我想得到:
a b v
A A 11
A B 3
A A 11
B B 7
B B 7
其中新v是由a和b分组时的旧v的总和,而没有唯一对的w被分组后就会消失。
现在我将进行分组,然后加入如下所示的代码:
test = df.groupby([a,b]).sum()
test.name = new_name
df.join(test, on = [a,b], how = 'left')
似乎有些人为的想法,我想知道是否有办法避免甚至必须加入。
答案 0 :(得分:3)
尝试使用transform
df['v']=df.groupby(['a','b']).v.transform('sum')
df
a b v
0 A A 11
1 A B 3
2 A A 11
3 B B 7
4 B B 7