简体   繁体   English

如何将 groupby 的结果保存在新列中?

[英]How can I save result from groupby in a new column?

I have a dataframe我有一个 dataframe

key1键1 key2键2 key3关键3 value1值1 value2价值2
1 1 a一个 s2 s2 3 3 4 4
1 1 a一个 s2 s2 2 2 3 3
2 2 b b j6 j6 1 1 1 1

and I want as result我想要结果

key1键1 key2键2 key3关键3 value1值1 value2价值2 sum_value1 sum_value1 sum_value2 sum_value2
1 1 a一个 s2 s2 3 3 4 4 5 5 7 7
1 1 a一个 s2 s2 2 2 3 3 5 5 7 7
2 2 b b j6 j6 1 1 1 1 1 1 1 1

sum_value1 is the summation of values in value1 by grouping key1, key2, key3. sum_value1 是 value1 通过分组 key1、key2、key3 得到的值的总和。 And so for sum_value2. sum_value2 也是如此。

How can I get this?我怎样才能得到这个? Thank you!谢谢!

What I used so far:到目前为止我使用的是:

df["sum_value1"] = df["value1"].groupby(["key1","key2","key3"]).transform('sum')

use groupby and transform to return the sum of individual columns使用 groupby 和 transform 返回各个列的总和

df[['sum_value1','sum_value2']]=df.groupby(['key1','key2','key3'])[['value1','value2']].transform(sum)
df
    key1    key2     key3   value1  value2  sum_value1  sum_value2
0      1       a       s2      3       4       5          5
1      1       a       s2      2       1       5          5
2      2       b       j6      1       1       1          1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM