Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

244
Visualizações
Use .corr para obtener la correlación entre dos columnas

Tengo el siguiente marco de datos de pandas Top15 :ingrese la descripción de la imagen aquí

Creo una columna que estima la cantidad de documentos citables por persona:

 Top15['PopEst'] = Top15['Energy Supply'] / Top15['Energy Supply per Capita'] Top15['Citable docs per Capita'] = Top15['Citable documents'] / Top15['PopEst']

Quiero saber la correlación entre el número de documentos citables per cápita y el suministro de energía per cápita. Así que uso el método .corr() (correlación de Pearson):

 data = Top15[['Citable docs per Capita','Energy Supply per Capita']] correlation = data.corr(method='pearson')

Quiero devolver un solo número, pero el resultado es:ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Sin datos reales, es difícil responder a la pregunta, pero supongo que está buscando algo como esto:

 Top15['Citable docs per Capita'].corr(Top15['Energy Supply per Capita'])

Eso calcula la correlación entre sus dos columnas 'Citable docs per Capita' y 'Energy Supply per Capita' .

Para dar un ejemplo:

 import pandas as pd df = pd.DataFrame({'A': range(4), 'B': [2*i for i in range(4)]}) AB 0 0 0 1 1 2 2 2 4 3 3 6

Entonces

 df['A'].corr(df['B'])

da 1 como se esperaba.

Ahora, si cambia un valor, por ejemplo

 df.loc[2, 'B'] = 4.5 AB 0 0 0.0 1 1 2.0 2 2 4.5 3 3 6.0

El comando

 df['A'].corr(df['B'])

devoluciones

 0.99586

que todavía está cerca de 1, como se esperaba.

Si aplica .corr directamente a su marco de datos, devolverá todas las correlaciones por pares entre sus columnas ; es por eso que luego observas 1s en la diagonal de tu matriz (cada columna está perfectamente correlacionada consigo misma).

 df.corr()

por lo tanto regresará

 AB A 1.000000 0.995862 B 0.995862 1.000000

En el gráfico que muestra, solo se representa la esquina superior izquierda de la matriz de correlación (supongo).

Puede haber casos en los que obtenga NaN s en su solución: consulte esta publicación para ver un ejemplo.

Si desea filtrar las entradas por encima o por debajo de un determinado umbral, puede consultar esta pregunta . Si desea trazar un mapa de calor de los coeficientes de correlación, puede verificar esta respuesta y, si luego se encuentra con el problema con las etiquetas de eje superpuestas, consulte la siguiente publicación .

over 4 years ago · Santiago Trujillo Relatório

0

Me encontré con el mismo problema. Citable Documents per Person era flotante, y python lo omite de alguna manera por defecto. Todas las demás columnas de mi marco de datos estaban en formatos numpy, así que lo resolví convirtiendo la columna a np.float64

 Top15['Citable Documents per Person']=np.float64(Top15['Citable Documents per Person'])

Recuerde que es exactamente la columna que usted mismo calculó

over 4 years ago · Santiago Trujillo Relatório

0

Mi solución sería después de convertir datos a tipo numérico:

 Top15[['Citable docs per Capita','Energy Supply per Capita']].corr()
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda