@sidonduarte/

pandas-groupby-1

Python

No description

fork
loading
Files
  • main.py
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
###
# Pandas Group By
# Resposta a uma pergunta STOpt
# https://pt.stackoverflow.com/q/349730/7412
# Por Sidon 2018
###

import pandas as pd
import numpy as np

df = pd.DataFrame({'Time': ['Alpha', 'Alpha', 'Beta', 'Beta', 
                 'Gama', 'Delta', 'Gama', 'Gama', 
                 'Alpha', 'Delta', 'Delta', 'Alpha'],
        'Rank': [2, 1, 3, 2, 3, 1, 4, 1, 2, 4, 1, 2],
        'Ano': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017],
        'Pontos':[976,689,963,773,845,712,866,999,684,721,794,700]})

print(df)

# Agrupando pela coluna desejada (aceita multiplas)
dfg = df.groupby('Time')

# Iterando sobre os grupos:
for name, group in dfg:
  print(name, group, sep='\n')

# Selecionando um grupo
print (dfg.get_group('Alpha'))

# Agregações
print('Media dos pontos de cada time',dfg.Pontos.agg(np.mean), sep='\n')
print('Somatória dos pontos de cada time',dfg.Pontos.agg(np.sum), sep='\n')

# Filtragem
print('Times que estão presentes 4+ vezes no conjunto de dados:', dfg.filter(lambda x: len(x) >= 4))