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
Existen diferentes formas de fusionar dos DataFrames. Esto se hace a través de la lógica de combinación como se muestra a continuación:
Contribución creada por: Edward Giraldo.
Aportes 24
Preguntas 1
Existen diferentes formas de fusionar dos dataFrames. Esto se hace a traves de la lógica de combinación como se muestra a continuacion
Left join
left_join(tab_1, tab_2, by = "state")
#> state population ev
#> 1 Alabama 4779736 9
#> 2 Alaska 710231 3
#> 3 Arizona 6392017 11
#> 4 Arkansas 2915918 NA
#> 5 California 37253956 55
#> 6 Colorado 5029196 NA
Right join
tab_1 %>% right_join(tab_2, by = "state")
#> state population ev
#> 1 Alabama 4779736 9
#> 2 Alaska 710231 3
#> 3 Arizona 6392017 11
#> 4 California 37253956 55
#> 5 Connecticut NA 7
#> 6 Delaware NA 3
Inner join
inner_join(tab_1, tab_2, by = "state")
#> state population ev
#> 1 Alabama 4779736 9
#> 2 Alaska 710231 3
#> 3 Arizona 6392017 11
#> 4 California 37253956
55
Full join
full_join(tab_1, tab_2, by = "state")
#> state population ev
#> 1 Alabama 4779736 9
#> 2 Alaska 710231 3
#> 3 Arizona 6392017 11
#> 4 Arkansas 2915918 NA
#> 5 California 37253956 55
#> 6 Colorado 5029196 NA
#> 7 Connecticut NA 7
#> 8 Delaware NA 3
Semi join
semi_join(tab_1, tab_2, by = "state")
#> state population
#> 1 Alabama 4779736
#> 2 Alaska 710231
#> 3 Arizona 6392017
#> 4 California 37253956
Recordemos los conceptos de clase:
Left join: Da prioridad al DataFrame de la izquierda. Trae siempre los datos de la izquierda y las filas en común con el DataFrame de la derecha.
Right join: Da prioridad al DataFrame de la derecha. Trae siempre los datos de la derecha y las filas en común con el DataFrame de la izquierda.
Inner join: Trae solamente aquellos datos que son común en ambos DataFrame
Outer join: Trae los datos tanto del DataFrame de la izquierda como el de la derecha, incluyendo los datos que comparten ambos.
Muy buena explicación de los join visualizando el efecto en las tablas!
Información resumida de esta clase
#EstudiantesDePlatzi
Cuando combinamos 2 conjuntos de datos y utilizamos left join, esto quiere decir, que me traerá todos los datos que existan en el conjunto de la izquierda junto con la intersección entre los dos conjuntos
Cuando utilizamos rigth join, la prioridad está en el conjunto de la derecha, es decir, nos traerá todos los datos del conjunto de la derecha y los que se encuentren en la intersección de los conjuntos
Cuando utilizamos inner join solamente traerá los datos que existan en ambos conjuntos de datos
Cuando utilizamos outer join nos va a traer todos los datos que existan en los conjuntos de datos
En pandas utilizamos la función concat para unir algunos DataFrame, es importante saber que con esta función debemos definir los Axis
Si utlizamos el Axis=0 fusionamos por filas, si utilizamos el Axis=1 la fusión se realizará por columnas
En este artículo se compara el INNER JOIN, LEFT JOIN, RIGHT JOIN y OUTER JOIN de SQL y PANDAS.
https://pandas.pydata.org/docs/getting_started/comparison/comparison_with_sql.html
Es increible que se pueda usar las combinaciones de dataframe como si fueran tablas de sql y que estas nos permitan mejorar nuestra capacidad de ciencia de datos.
df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'ID': [2, 3, 4], 'Age': [25, 30, 22]})
# Inner Join
inner_join = pd.merge(df1, df2, on='ID', how='inner')
# Left Join
left_join = pd.merge(df1, df2, on='ID', how='left')
# Right Join
right_join = pd.merge(df1, df2, on='ID', how='right')
# Full Outer Join
outer_join = pd.merge(df1, df2, on='ID', how='outer')
✅
Notece que en ambas tablas, solo se tiene una columna en común, la cual sería el índice.
Cuando se tienen más de una fila con coincidencia, se complican un poco las cosas en mi experiencia.
Tu camiseta me trajo buenos recuerdos 🥲
Me parece que el ejemplo del Inner Join está mal, ya que solo trae los datos que tengan match, no debería unir las columnas Ay B con Cy D, de hecho no se podría hacer porque no tienen columnas en común
Concat-columnas
Concat-filas
Outer-join
Inner-join
Right-join
Left-join
Lógica de fusión
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?