API · Pandas
Pandas DataFrame.corr() Função
A função DataFrame corr() encontra a correlação entre as colunas da moldura de dados.
Nesta página
Python Pandas DataFrame.corr() calcula as correlações entre pares de colunas de um DataFrame e as retorna em uma matriz de correlação. Escolha pearson, kendall ou spearman com o argumento method.
Sintaxe e parâmetros de pandas.DataFrame.corr()
Chame o método em um DataFrame, por exemplo, df.corr(method="pearson", min_periods=1). O argumento method seleciona o cálculo da correlação; seu padrão é pearson. O argumento min_periods define o número mínimo de observações válidas necessário para que um par de colunas tenha um resultado. Ele é aplicado separadamente a cada par, e não ao número de pares na matriz.
O método retorna um DataFrame cujas linhas e colunas correspondem às colunas de entrada selecionadas. Cada valor na diagonal é a correlação de uma coluna consigo mesma. Os valores fora da diagonal descrevem a direção e a intensidade da relação entre duas colunas; a correlação, por si só, não demonstra causalidade. Nos exemplos, selecione explicitamente colunas numéricas para deixar claro quais dados entram no cálculo. Ao comparar métodos, mantenha as mesmas linhas e colunas para que as diferenças nos resultados reflitam a escolha do cálculo, e não uma alteração nos dados de entrada. Antes de interpretar um coeficiente, confira quais observações estão disponíveis para aquele par de colunas e se o método escolhido é adequado à relação que você quer resumir.
Calcular uma matriz de correlação de Pearson
Para um exemplo compacto, crie duas colunas numéricas e chame corr() com o método padrão. O exemplo armazena a matriz retornada em correlations para que você possa examiná-la ou usá-la em sua análise.
import pandas as pd
scores = pd.DataFrame({
"study_hours": [1, 2, 3, 4],
"score": [2, 4, 5, 8],
})
correlations = scores.corr()
print(correlations)
study_hours score
study_hours 1.000000 0.981156
score 0.981156 1.000000
Esta chamada usa pearson. A matriz apresenta os nomes das duas colunas em cada eixo, e o resultado de cada par aparece na interseção correspondente. Se a tabela contiver rótulos ou outros dados não numéricos, selecione as colunas numéricas que deseja comparar antes de chamar o método, em vez de depender do tratamento implícito das colunas.
Calcular uma matriz de correlação de Kendall
Passe method="kendall" para calcular a correlação de postos de Kendall das colunas numéricas. Ao comparar métodos, mantenha as mesmas colunas de entrada para que as matrizes respondam à mesma pergunta.
import pandas as pd
scores = pd.DataFrame({
"study_hours": [1, 2, 3, 4],
"score": [2, 4, 5, 8],
})
correlations = scores.corr(method="kendall")
print(correlations)
study_hours score
study_hours 1.0 1.0
score 1.0 1.0
O objeto retornado continua sendo um DataFrame de correlação. Consulte o valor na interseção de dois rótulos de coluna diferentes para ver a correlação de Kendall entre eles; a diagonal mostra a autocorrelação de cada coluna.
Usar min_periods com a correlação de Spearman
Defina min_periods para exigir um número mínimo de observações válidas em pares para calcular um resultado. Neste exemplo, a correlação de postos de Spearman só é calculada quando há pelo menos três observações disponíveis em conjunto para cada par de colunas. Os valores ausentes são representados por None na entrada.
import pandas as pd
measurements = pd.DataFrame({
"first": [1, 2, 3, None],
"second": [2, 4, None, 8],
"third": [1, 3, 5, 7],
})
correlations = measurements.corr(method="spearman", min_periods=3)
print(correlations)
first second third
first 1.0 NaN 1.0
second NaN 1.0 1.0
third 1.0 1.0 1.0
Para first e second, apenas duas linhas contêm observações para ambas as colunas, portanto esse par não atinge o limite de três. Os demais pares são avaliados com base em suas próprias observações válidas compartilhadas. Essa configuração determina se um par recebe um resultado de correlação; ela não solicita uma quantidade específica de pares de colunas.