logo

¿Cómo combinar dos marcos de datos en Python – Pandas?

En muchas situaciones de la vida real, los datos que queremos utilizar vienen en varios archivos. A menudo tenemos la necesidad de combinar estos archivos en un solo DataFrame para analizar los datos. Pandas proporciona tales funciones para combinar fácilmente Series o DataFrame con varios tipos de lógica de conjuntos para los índices y funcionalidad de álgebra relacional en el caso de operaciones de tipo unión/fusión. También podemos combinar datos de varias tablas en pandas . Además, pandas también proporciona utilidades para comparar dos Series o DataFrame y resumir sus diferencias.

Concatenación de marcos de datos en Pandas

La función concat() en Pandas se usa para agregar columnas o filas de un DataFrame a otro. El Función concat() de Pandas hace todo el trabajo pesado de realizar operaciones de concatenación a lo largo de un eje mientras realiza la lógica de conjunto opcional (unión o intersección) de los índices (si los hay) en los otros ejes.



Python3








import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)>

>

>

Producción:

    id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Unirse a DataFrames en Pandas

Cuando concatenamos nuestros DataFrames simplemente los agregamos entre sí, es decir, los apilamos verticalmente o uno al lado del otro. Otra forma de combinar DataFrames es usar columnas en cada conjunto de datos que contengan valores comunes (una identificación única común). Combinar DataFrames usando un campo común se llama unión. Las columnas que contienen los valores comunes se denominan claves de unión. Unir DataFrames de esta manera suele ser útil cuando un DataFrame es una tabla de búsqueda que contiene datos adicionales que queremos incluir en el otro.

Nota: Este proceso de unir tablas es similar a lo que hacemos con las tablas en un base de datos SQL .

Al pegar varios DataFrames, puede elegir cómo manejar los otros ejes (aparte del que se está concatenando). Esto se puede hacer de las dos maneras siguientes:

  • Tome la unión de todos ellos, join=’outer’. Esta es la opción predeterminada ya que no produce pérdida de información.
  • Tome la intersección, únase = 'interior'.

Ejemplo: unión interna de dos marcos de datos utilizando el método concat()

En este ejemplo, dos pandas DataFrames,df1>ydf3>, se concatenan mediante una unión interna basada en sus índices. El DataFrame resultante, llamado 'resultado', incluye solo filas donde la columna 'id' endf1>coincide con la columna 'Ciudad' endf3>.

Python3


hola mundo java



import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)>

>

>

Producción:

  id Name City Age  0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>

Concatenar usando la función append()

Un atajo útil para concat() es el método de instancia append() en Series y DataFrame. Este método se puede utilizar para combinar datos de varias tablas en Pandas. Estos métodos en realidad son anteriores a concat.

Ejemplo 1: combinación de dos marcos de datos utilizando el método append()

En este ejemplo, dos Pandas DataFrames,df1>ydf2>, se combinan usando elappend>método, lo que da como resultado un nuevo DataFrame llamado 'resultado'. El DataFrame resultante contiene todas las filas de ambosdf1>ydf2>, con un índice continuo.

seleccionar entre varias tablas sql

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)>

>

>

Producción:

   id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Nota: append() puede necesitar varios objetos para concatenar.

Ejemplo 2: combinar datos de varias tablas en Pandas

En este ejemplo, tres Pandas DataFrames,df1>,df2>, ydf3>, se adjuntan usando elappend>método. El DataFrame resultante llamado 'resultado' combina todas las filas de los tres DataFrames, manteniendo un índice continuo.

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)>

>

>

Producción:

   id Name City Age  0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>