logo

Com combinar dos marcs de dades a Python - Pandas?

En moltes situacions de la vida real, les dades que volem utilitzar es troben en diversos fitxers. Sovint tenim la necessitat de combinar aquests fitxers en un únic DataFrame per analitzar les dades. Pandas ofereix aquestes facilitats per combinar fàcilment Series o DataFrame amb diversos tipus de lògica de conjunt per als índexs i la funcionalitat d'àlgebra relacional en el cas d'operacions de tipus unió / fusió. També podem combinar dades de diverses taules Pandes . A més, els pandas també proporcionen utilitats per comparar dues sèries o DataFrame i resumir les seves diferències.

Concatenació de DataFrames a Pandas

La funció concat() a Pandas s'utilitza per afegir columnes o files d'un DataFrame a un altre. El Funció Pandas concat(). fa tot el treball pesat de realitzar operacions de concatenació al llarg d'un eix mentre realitza una lògica de conjunt opcional (unió o intersecció) dels índexs (si n'hi ha) als altres eixos.



Python 3








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)>

>

>

Sortida:

    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>

Unir-se a DataFrames a Pandas

Quan vam concatenar els nostres DataFrames, simplement els vam afegir els uns als altres, és a dir, els vam apilar verticalment o un al costat de l'altre. Una altra manera de combinar DataFrames és utilitzar columnes a cada conjunt de dades que continguin valors comuns (un identificador únic comú). La combinació de DataFrames mitjançant un camp comú s'anomena unió. Les columnes que contenen els valors comuns s'anomenen clau(s) d'unió. Unir DataFrames d'aquesta manera és sovint útil quan un DataFrame és una taula de cerca que conté dades addicionals que volem incloure a l'altre.

Nota: Aquest procés d'unió de taules és similar al que fem amb taules en un Base de dades SQL .

Quan enganxeu diversos DataFrames, podeu triar com gestionar els altres eixos (que no sigui el que s'està concatenat). Això es pot fer de les dues maneres següents:

  • Agafeu la unió de tots, unit='exterior'. Aquesta és l'opció predeterminada, ja que no té cap pèrdua d'informació.
  • Agafeu la intersecció, join='inner'.

Exemple: unió interna de dos marcs de dades mitjançant el mètode concat().

En aquest exemple, dos Pandas DataFrames,df1>idf3>, es concatenen mitjançant una unió interna basada en els seus índexs. El DataFrame resultant, anomenat 'resultat', inclou només files on la columna 'id' adf1>coincideix amb la columna 'Ciutat' adf3>.

Python 3


variables globals de javascript



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)>

>

>

Sortida:

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

Concatenació mitjançant la funció append().

Una drecera útil per a concat() és el mètode d'instància append() a Series i DataFrame. Aquest mètode es pot utilitzar per combinar dades de diverses taules a Pandas. Aquests mètodes en realitat van ser anteriors a concat.

Exemple 1: combinació de dos marcs de dades mitjançant el mètode append().

En aquest exemple, dos Pandas DataFrames,df1>idf2>, es combinen amb elappend>mètode, donant lloc a un nou DataFrame anomenat 'resultat'. El DataFrame resultant conté totes les files d'ambdósdf1>idf2>, amb un índex continu.

llista de làtex

Python 3




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)>

>

>

Sortida:

   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() pot prendre diversos objectes per concatenar.

Exemple 2: combinar dades de diverses taules a Pandas

En aquest exemple, tres Pandas DataFrames,df1>,df2>, idf3>, s'afegeixen junts amb elappend>mètode. El DataFrame resultant anomenat 'resultat' combina totes les files dels tres DataFrames, mantenint un índex continu.

Python 3




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)>

>

>

Sortida:

   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>