将groupby中列的名称与sum一起保留在数据框中

2024-06-28 11:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须在pandas数据框中执行groupby(),结果必须是具有相同列(相同名称和相同编号)的数据框。示例:

import pandas as pd

raw_data = {'first_name': ['Jason', 'Molly', 'Jason', 'Jake', 'Molly'], 
    'last_name': ['Miller', 'Jacobson', 'Miller', 'Milner', 'Jacobson'], 
    'age': [42, 73, 42, 24, 73], 
    'point_1': [4, 24, 31, 2, 93],
    'point_2': [25, 94, 57, 62, 70]}

df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 
'point_1', 'point_2'])

如果我尝试:

df.groupby(['first_name','last_name','age']).sum()

我有:

                          point_1  point_2
first_name last_name age                  
Amy        Cooze     73         3       70
Jake       Milner    24         2       62
Jason      Miller    42         4       25
Molly      Jacobson  52        24       94
Tina       Ali       36        31       57

我的专栏只有:

df.groupby(['first_name','last_name','age']).sum().columns.values 

array(['point_1', 'point_2'], dtype=object) 

但我还需要三个初始列


Tags: 数据namepandasdfagerawmollypoint
2条回答

你分组的列成为索引。如果你不想这样:

df.groupby(['first_name','last_name','age']).sum().reset_index()

groupby调用上将as_index设置为False就可以了

df.groupby(['first_name','last_name','age'],as_index=False).sum()

相关问题 更多 >