[英]How to groupby pandas dataframe and sum values in another column
I have a pandas dataframe with 3 columns (CHAR, VALUE, and WEIGHT).我有一个包含 3 列(CHAR、VALUE 和 WEIGHT)的 Pandas 数据框。
CHAR column contains duplicate values which I need to group ['A', 'A', 'A', 'B', 'B', 'C']. CHAR 列包含重复值,我需要将这些值分组 ['A'、'A'、'A'、'B'、'B'、'C']。
VALUE column has a unique value for every unique CHAR [10, 10, 10, 15, 15, 20]. VALUE 列对于每个唯一的 CHAR [10, 10, 10, 15, 15, 20] 都有一个唯一的值。
WEIGHT column has various values [1, 2, 1, 4, 4, 6]. WEIGHT 列有各种值 [1, 2, 1, 4, 4, 6]。
Consider an example of my initial dataframe:考虑我的初始数据框的示例:
I need to create a new dataframe which will have 3 columns.我需要创建一个包含 3 列的新数据框。
Result would look like this:结果如下所示:
I would highly appreciate any help.我将不胜感激任何帮助。
You could use +=
instead:你可以使用
+=
代替:
newDF = df.groupby(['CHAR', 'VALUE'], as_index=False)['WEIGHT'].sum()
newDF['VALUE'] += newDF['WEIGHT']
I was actually able to answer my own question.我实际上能够回答我自己的问题。 Here is the solution:
这是解决方案:
d = {'CHAR': ['A', 'A', 'A', 'B', 'B', 'C'],
'VALUE': [10, 10, 10, 15, 15, 20],
'WEIGHT': [1, 2, 1, 4, 4, 6]}
df = pandas.DataFrame(data=d)
newDF = df.groupby(['CHAR', 'VALUE'], as_index=False)['WEIGHT'].sum()
newDF['VALUE'] = newDF['VALUE'] + newDF['WEIGHT']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.