Держите имя столбцов в группе с суммой в кадре данных панд - PullRequest
0 голосов
/ 07 февраля 2019

Я должен сделать groupby () во фрейме данных pandas, и результат должен быть фреймом данных с теми же столбцами (с тем же именем и тем же номером).Пример:

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) 

но мне также нужны три начальных столбца.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Установка as_index в False при вызове groupby должна сделать это.

df.groupby(['first_name','last_name','age'],as_index=False).sum()
0 голосов
/ 07 февраля 2019

Сгруппированные вами столбцы стали индексом.Если вы не хотите этого:

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