hugo-pires.github.io

The most exciting phrase to hear in science is not 'Eureka!' but 'That's funny...'

View My GitHub Profile

Dão, verdes e python

Vamos continuar a olhar os dados das edições que vão de Junho de 2017 a Maio de 2018, da “Vinho Grandes Escolhas”. Continuámos no post anterior a utilizar o Pandas e hoje vamos avançar um pouco mais.

import pandas as pd
%matplotlib inline

vinhos = pd.read_excel('output_analise/vinhos.xlsx')

Vamos caminhar um pouco pelas regiões produtoras de vinhos. Devemos ter em atenção que pode existir, por motivos de qualidade, mais do que uma denominação por cada uma das regiões.

vinhos['regiao'].value_counts().head(10)
Douro              467
Reg. Alentejano    342
Reg. Lisboa        196
Alentejo           161
Dão                138
Vinho Verde        122
Reg. Tejo          121
Porto              100
Bairrada            78
DO Tejo             66
Name: regiao, dtype: int64

Vemos aqui quais são as 10 primeiras denominações quanto ao número de vinhos.

round(vinhos['regiao'].value_counts().head(10).sum() / len(vinhos['regiao']), 2)
0.77

E concluímos qque correspondem a 77% dos vinhos. Para tal utilizámos uma expressão um pouco comprida - o Python é acusado de abusar destes one liners - mas onde já encontramos uma pequena amostra do verdadeiro potencial do Pandas.

Agora, um pouco de gosto pessoal aqui e nada de conhecimento técnico - vamos comparar Vinhos do Dão com Vinhos Verdes.

vinhos[vinhos['regiao'] == 'Dão']['tipo'].value_counts()
branco    67
tinto     63
rosé       4
Name: tipo, dtype: int64
vinhos[vinhos['regiao'] == 'Vinho Verde']['tipo'].value_counts()
branco    97
tinto      8
rosé       7
Name: tipo, dtype: int64

Para encontrar o número de vinhos de cada tipo para cada uma das regiões, filtramos a dataframe usando uma condição aplicada à coluna regiao, e de seguida usamos o já conhecido método value_counts. Podemos concluir que há maior equilíbrio entre brancos e tintos na Região do Dão.

vinhos[vinhos['regiao'] == 'Dão']['grau'].mean()
13.22463768115942
vinhos[vinhos['regiao'] == 'Vinho Verde']['grau'].mean()
13.073770491803279

Utilizando um processo semelhante, e calculando a média podemos concluir que o grau dos vinhos difere muito pouco entre as regiões…

vinhos[vinhos['regiao'] == 'Dão']['preco'].mean()
15.824264705882356
vinhos[vinhos['regiao'] == 'Vinho Verde']['preco'].mean()
7.765042016806723

… mas o preço sim.

Para a classificação numerica dada pelos provadores da revista, vamos fazer de forma ligeiramente diferente, tornando o código mais legível e tentando obter mais informação - a média pode ser insuficiente.

vinhos_do_dao = vinhos[vinhos['regiao'] == 'Dão']
vinhos_verdes = vinhos[vinhos['regiao'] == 'Vinho Verde']
classificacao_dos_vinhos_do_dao = vinhos_do_dao['classificacao numerica']
classificacao_dos_vinhos_verdes = vinhos_verdes['classificacao numerica']

Na prática construímos dataframes intermédias, às quais podem ser dados nomes com significado e que podem ser usadas (e reutilizadas) numa abordagem por etapas.

classificacao_dos_vinhos_do_dao.mean(), classificacao_dos_vinhos_do_dao.std()
(16.681159420289855, 0.787544527730836)
classificacao_dos_vinhos_verdes.mean(), classificacao_dos_vinhos_verdes.std()
(15.737704918032787, 0.7692787078743544)

Os Vinhos do Dão são, em média, considerados melhores do que os Vinhos Verdes, o que é, numa primeira análise confirmado por um desvio padrão semelhante.

Written on December 3, 2018