Группа DataFrame, возвращающая обычный dafaframe - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь сгруппировать по столбцу на фрейме данных и вернуть обычный фрейм данных (так же, как вы получили бы от SQL. Но когда я пытаюсь, это дает мне немного другую структуру.

data = [['tom', 10], ['nick', 15], ['juli', 14], ['tom', 5], ['nick', 10], ['jack', 10]] 
df = pd.DataFrame(data, columns = ['Name', 'Score'])


   Surname  Score
0   tom     10
1   nick    15
2   July    14
3   tom      5
4   nick    10
5   Jack    10

Это вывод, который я хочу получить

   Surname  Total_score
0   tom     15
1   nick    25
2   July    14
3   Jack    10

Но когда я пытаюсь

df.groupby('Name').Score.agg(['sum'])

Результат вроде как

            sum
 Surname    
0   tom     15
1   nick    25
2   July    14
3   Jack    10

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Это должно сработать:

df.groupby("Name", as_index=False).agg({"Score": sum}).rename(columns={"Score": "Total_score"})

Вывод:

   Name  Total_score
0  jack           10
1  juli           14
2  nick           25
3   tom           15
0 голосов
/ 17 января 2020
data = [['tom', 10], ['nick', 15], ['juli', 14], ['tom', 5], ['nick', 10], ['jack', 10]] 
df = pd.DataFrame(data, columns = ['Name', 'Score'])


   Name  Score
0   tom     10
1  nick     15
2  juli     14
3   tom      5
4  nick     10
5  jack     10

мы можем суммировать df следующим действием:

df1 = df.groupby('Name').agg({'Score':"sum"}).reset_index()

df1
   Name  Score
0  jack     10
1  juli     14
2  nick     25
3   tom     15
...