No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Join

21/24
Recursos

Join Es otra herramienta para hacer exactamente lo mismo, una combinaci贸n. La diferencia es que join va a ir a los 铆ndices y no a columnas espec铆ficas.

izq = pd.DataFrame({'A': ['A0','A1','A2'],
  'B':['B0','B1','B2']},
  index=['k0','k1','k2'])

der =pd.DataFrame({'C': ['C0','C1','C2'],
  'D':['D0','D1','D2']},
  index=['k0','k2','k3']) 
  • Combinamos izq con der
izq.join(der)
---> A  B   C   D
k0  A0  B0  C0  D0
k1  A1  B1  nan nan
k2  A2  B2  C1  D1
  • Traer todos los datos aunque no hagan match.
izq.join(der, how = 'outer')
---> A  B   C   D
k0  A0  B0  C0  D0
k1  A1  B1  nan nan
k2  A2  B2  C1  D1
k3  nan nan C2  D2

Pregunta:

En temas de performance y velocidad, 驴cu谩l es mejor el Merge o el Join, cuando se trata de miles de registros?
@gustavomp, Platzinauta

Respuesta:
join suele ser mejor
@alarcon7a, Profe Platzi

Contribuci贸n creada por: Edward Giraldo.

Aportes 18

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Diccionarios ocupados en esta clase 馃槃

izq = pd.DataFrame({'A': ['A0','A1','A2'],
  'B':['B0','B1','B2']},
  index=['k0','k1','k2'])

der =pd.DataFrame({'C': ['C0','C1','C2'],
  'D':['D0','D1','D2']},
  index=['k0','k2','k3']) 

驴Cu谩l es la principal diferencia entre merge y join en pandas?

  • Merge puede unificar df en base a los 铆ndices o a los valores de las columnas.
  • Join solo lo puede hacer en base a los 铆ndices. Es una caso espec铆fico de merge.

Ya estamos en la recta final, 谩nimos! 馃榾

Este art铆culo explica el merge, join y concatenar comparando sus diferencias.
https://realpython.com/pandas-merge-join-and-concat/

El 鈥渞igth鈥 deberia ser considerada palabra reservada! 馃槃

Un aporte, hay que tener en cuanta siempre cual va a ser tu dataframe principal para unirlo o relacionarlo con otros, recordar que en sql hay reglas (uno - varios, p eje)

Informaci贸n resumida de esta clase
#EstudiantesDePlatzi

  • Join a diferencia del merge, utilizar谩 los 铆ndices de nuestros DataFrame para realizar el match y no a las columnas

  • Tambi茅n utilizamos el par谩metro how para definir el tipo de uni贸n que se va a realizar

Mi c贸digo de hoy:

##Join - index match
data_frame_izq_04= pd.DataFrame({'A':['A0','A1','A2'],
'B':['B0','B1','B2']}, index= ['k0','k1','k2'])

data_frame_der_04= pd.DataFrame({'C':['C0','C1','C2'],
'D':['D0','D1','D2']}, index= ['k0','k2','k3'])

print(f'joining: \n {data_frame_izq_04.join(data_frame_der_04)}')
print(f'joining by inner: \n {data_frame_izq_04.join(data_frame_der_04, how= "inner")}')
print(f'joining by left: \n {data_frame_izq_04.join(data_frame_der_04, how= "left")}')
print(f'joining by right: \n {data_frame_izq_04.join(data_frame_der_04, how= "right")}')
print(f'joining by outer: \n {data_frame_izq_04.join(data_frame_der_04, how= "outer")}')

El par谩metro on hace referencia a las llaves o keys (en SQL), para que hagan una relaci贸n entre los diferentes dataframes. Es opcional, si no se especifica y 鈥榣eft_index鈥 y 鈥榬ight_index鈥 son 鈥楩alse鈥, entonces las columnas que compartan el mismo nombre se utilizar谩n como llaves.

1. **Concatenaci贸n (concat):** * La concatenaci贸n se utiliza para unir DataFrames o Series a lo largo de un eje existente. Puedes concatenar objetos a lo largo de las filas o columnas. * No realiza ninguna alineaci贸n basada en columnas; simplemente apila los datos uno encima del otro o uno al lado del otro. * Es 煤til para combinar conjuntos de datos que tienen las mismas columnas y estructura, pero diferentes filas. 2. **Uni贸n (join):** * La operaci贸n de uni贸n se utiliza para combinar DataFrames bas谩ndose en las etiquetas de 铆ndice o columnas comunes. * Las uniones son similares a las operaciones SQL JOIN y permiten combinar dos o m谩s DataFrames en funci贸n de una o m谩s columnas clave. * Las uniones se utilizan para combinar informaci贸n de diferentes DataFrames que comparten una relaci贸n com煤n. 3. **Fusi贸n (merge):** * La fusi贸n es similar a la uni贸n, pero es espec铆fica de pandas. Es una forma m谩s poderosa de combinar DataFrames, ya que permite una mayor flexibilidad en la especificaci贸n de c贸mo se realizar谩 la fusi贸n. * Puedes fusionar DataFrames en funci贸n de m煤ltiples columnas y especificar el tipo de uni贸n (interna, externa, izquierda, derecha) y c贸mo se manejar谩n los valores faltantes. * La fusi贸n es especialmente 煤til cuando se trabaja con datos complejos y se requiere un control preciso sobre c贸mo se combinan los DataFrames.

join es muy 煤til, y me parece que con el atributo outer es m谩s completa la concatenaci贸n:

izq.join(der, how='outer')

Recomiendo que revisen lsuffix y rsuffix esta en la documentaci贸n que esta adjuntado en esta clase sirve cuando tengamos datos de cantidad diferentes y tener una mejor visualizaci贸n del dataframe por indexaci贸n.

izq = pd.DataFrame({'A':['A0','A1','A2'],
'B':['B0','B1','B2']},
index =['K0','K1','K2'])

der = pd.DataFrame({'C':['C0','C1','C2'],
'D':['D0','D1','D2']},
index = ['K0','K2','K3'])
izq.join(der,how='inner')

Mis apuntes #22 (Notion)

trabajando con join


Join Es otra herramienta para hacer exactamente lo mismo, una combinaci贸n. La diferencia es que join va a ir a los 铆ndices y no a columnas espec铆ficas.
________________________________________
[3]
0 s
import  pandas as pd
import numpy as np
________________________________________
[2]
0 s
izq = pd.DataFrame({'A': ['A0','A1','A2'],
  'B':['B0','B1','B2']},
  index=['k0','k1','k2'])

der =pd.DataFrame({'C': ['C0','C1','C2'],
  'D':['D0','D1','D2']},
  index=['k0','k2','k3']) 
________________________________________
[4]
izq.join(der)
#esta va directamente hacia los 铆ndices Combinamos izq con der
________________________________________
[5]
izq.join(der,how="inner")
#index a nivel de math trae solo dos filas del dataframe 
________________________________________
[7]
0 s
izq.join(der,how="left")
________________________________________
[8]
0 s
izq.join(der,how="right")
________________________________________
[9]
izq.join(der,how="outer")
#aca respeta los join pero sin importa en que posicion se encuentre completando los datos con nan 
________________________________________
join proporciona una estructura muy parecida a marge, al igual es para combinar dataframe pero lo hace directamente con el index