in

Python Pandas – Fusionar / Unir


Pandas tiene operaciones de unión en memoria con todas las funciones y alto rendimiento idiomáticamente muy similares a las bases de datos relacionales como SQL.

Pandas proporciona una sola función, unir, como punto de entrada para todas las operaciones de unión de bases de datos estándar entre objetos DataFrame –

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

Aquí, hemos utilizado los siguientes parámetros:

  • izquierda – Un objeto DataFrame.

  • Derecha – Otro objeto DataFrame.

  • sobre – Columnas (nombres) a las que unirse. Debe encontrarse en los objetos DataFrame izquierdo y derecho.

  • dejado en – Columnas del DataFrame izquierdo para usar como claves. Pueden ser nombres de columna o matrices con una longitud igual a la longitud del DataFrame.

  • tocar el asunto exacto – Columnas del DataFrame correcto para usar como claves. Pueden ser nombres de columna o matrices con una longitud igual a la longitud del DataFrame.

  • left_index – si Cierto, use el índice (etiquetas de fila) del DataFrame izquierdo como su (s) clave (s) de combinación. En el caso de un DataFrame con un MultiIndex (jerárquico), el número de niveles debe coincidir con el número de claves de combinación del DataFrame correcto.

  • right_index – Mismo uso que left_index para el DataFrame correcto.

  • cómo – Uno de ‘izquierda’, ‘derecha’, ‘exterior’, ‘interior’. El valor predeterminado es interno. Cada método se describe a continuación.

  • clasificar – Ordene el DataFrame de resultado por las claves de combinación en orden lexicográfico. El valor predeterminado es Verdadero, si se establece en Falso mejorará sustancialmente el rendimiento en muchos casos.

Creemos ahora dos DataFrames diferentes y realicemos las operaciones de fusión en ellos.

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right

Su producción es como sigue –

    Name  id   subject_id
0   Alex   1         sub1
1    Amy   2         sub2
2  Allen   3         sub4
3  Alice   4         sub6
4  Ayoung  5         sub5

    Name  id   subject_id
0  Billy   1         sub2
1  Brian   2         sub4
2  Bran    3         sub3
3  Bryce   4         sub6
4  Betty   5         sub5

Fusionar dos DataFrames en una clave

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on='id')

Su producción es como sigue –

   Name_x   id  subject_id_x   Name_y   subject_id_y
0  Alex      1          sub1    Billy           sub2
1  Amy       2          sub2    Brian           sub4
2  Allen     3          sub4     Bran           sub3
3  Alice     4          sub6    Bryce           sub6
4  Ayoung    5          sub5    Betty           sub5

Fusionar dos DataFrames en varias claves

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on=['id','subject_id'])

Su producción es como sigue –

    Name_x   id   subject_id   Name_y
0    Alice    4         sub6    Bryce
1   Ayoung    5         sub5    Betty

Fusionar usando el argumento ‘cómo’

los cómo El argumento para fusionar especifica cómo determinar qué claves se incluirán en la tabla resultante. Si una combinación de teclas no aparece en las tablas de la izquierda o de la derecha, los valores de la tabla combinada serán NA.

Aquí hay un resumen de la cómo opciones y sus nombres equivalentes de SQL –

Método de fusión Equivalente de SQL Descripción
izquierda IZQUIERDA COMBINACIÓN EXTERNA Usar las teclas del objeto de la izquierda
Derecha UNIÓN EXTERIOR DERECHA Usar claves del objeto correcto
exterior UNIÓN EXTERIOR COMPLETA Usar unión de claves
interno UNIR INTERNAMENTE Usar intersección de llaves

Unión a la izquierda

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='left')

Su producción es como sigue –

    Name_x   id_x   subject_id   Name_y   id_y
0     Alex      1         sub1      NaN    NaN
1      Amy      2         sub2    Billy    1.0
2    Allen      3         sub4    Brian    2.0
3    Alice      4         sub6    Bryce    4.0
4   Ayoung      5         sub5    Betty    5.0

Unión derecha

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='right')

Su producción es como sigue –

    Name_x  id_x   subject_id   Name_y   id_y
0      Amy   2.0         sub2    Billy      1
1    Allen   3.0         sub4    Brian      2
2    Alice   4.0         sub6    Bryce      4
3   Ayoung   5.0         sub5    Betty      5
4      NaN   NaN         sub3     Bran      3

Unión externa

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, how='outer', on='subject_id')

Su producción es como sigue –

    Name_x  id_x   subject_id   Name_y   id_y
0     Alex   1.0         sub1      NaN    NaN
1      Amy   2.0         sub2    Billy    1.0
2    Allen   3.0         sub4    Brian    2.0
3    Alice   4.0         sub6    Bryce    4.0
4   Ayoung   5.0         sub5    Betty    5.0
5      NaN   NaN         sub3     Bran    3.0

Unir internamente

La unión se realizará en index. La operación de unión respeta el objeto en el que se llama. Entonces, unirse (b) no es igual a b.unión (a).

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='inner')

Su producción es como sigue –

    Name_x   id_x   subject_id   Name_y   id_y
0      Amy      2         sub2    Billy      1
1    Allen      3         sub4    Brian      2
2    Alice      4         sub6    Bryce      4
3   Ayoung      5         sub5    Betty      5

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

comment desinstaller des jeux video et des programmes sur windows 10 et steam

Cómo desinstalar videojuegos y programas en Windows 10 y Steam

apple touch icon@2

numpy – Sintaxis en Python (.T)