Olá, Gabriel! Tudo bom? Espero que sim!
Como você bem comentou, pode utilizar o groupby
com uma seleção das colunas numéricas e realizar a média de cada uma delas.
import pandas as pd
dataset = pd.read_csv('data/db.csv', sep = ';')
dataset.groupby(by='Motor')[['Ano', 'Quilometragem', 'Valor']].mean()
Motor | Ano | Quilometragem | Valor |
---|
Motor 1.0 8v | 2004.92 | 53586.3 | 97833 |
Motor 1.8 16v | 2010.39 | 39850.2 | 83872.5 |
Motor 2.0 16v | 2005 | 66863.9 | 94041.3 |
Motor 2.4 Turbo | 2010.7 | 87847.5 | 99105 |
Motor 3.0 32v | 2011.63 | 59909.6 | 93772.8 |
Motor 4.0 Turbo | 2008.08 | 68533.4 | 102304 |
Motor 5.0 V8 Bi-Turbo | 2006.86 | 39469.5 | 93346.2 |
Motor Diesel | 2007.38 | 58930.8 | 107180 |
Motor Diesel V6 | 2001.43 | 56360.5 | 104054 |
Motor Diesel V8 | 2008.95 | 61855.6 | 103581 |
Motor V6 | 2007.05 | 58376.7 | 107472 |
Motor V8 | 2008.46 | 65207.5 | 97934.8 |
Talvez a coluna de Ano
não fique tão interessante nesse formato, mas podemos fazer um agrupamento por multi-index usando as décadas (ano a ano fica com bastante informações ainda) para representar motores fabricados em determinados períodos e seus respectivos valores numéricos.
anos_em_decadas = list(range(1910,2031,10))
dataset['Decada_Motor'] = pd.cut(dataset['Ano'], bins=anos_em_decadas)
E agora aplicando o group by com múltiplos índices, extraindo a média e excluindo os períodos sem informação útil.
dataset.groupby(by=['Motor', 'Decada_Motor'])[['Quilometragem', 'Valor']].mean().dropna()
Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
Não é necessário fechar o tópico, outras pessoas podem ser ajudadas por ele :D