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'])
Librerías de manipulación de datos con Python
¿Por qué NumPy y Pandas?
NumPy
NumPy Array
Tipos de datos
Dimensiones
Creando arrays
Shape y Reshape
Funciones principales de NumPy
Copy
Condiciones
Operaciones
Quiz: NumPy
Pandas
Series y DataFrames en Pandas
Leer archivos CSV y JSON con Pandas
Filtrado con loc y iloc
Agregar o eliminar datos con Pandas
Manejo de datos nulos
Filtrado por condiciones
Funciones principales de Pandas
groupby
Combinando DataFrames
Merge y Concat
Join
Pivot y Melt
Apply
Quiz: Pandas
Cierre
Posibilidades con Pandas y NumPy
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
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'])
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
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
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 25
Preguntas 3
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?
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 “rigth” deberia ser considerada palabra reservada! 😄
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
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)
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")}')
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
Here’s a breakdown of factors to consider:
Según Bard
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 ‘left_index’ y ‘right_index’ son ‘False’, entonces las columnas que compartan el mismo nombre se utilizarán como llaves.
Es increible lo que se puede aprender en data-science. Si que el camino es muy largo pero al final la recompensa sera buena.
✅
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')
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?