Monissa tosielämän tilanteissa tiedot, joita haluamme käyttää, tulevat useisiin tiedostoihin. Meillä on usein tarve yhdistää nämä tiedostot yhdeksi DataFrame-kehykseksi tietojen analysoimiseksi. Pandat tarjoavat sellaiset mahdollisuudet Series- tai DataFramen helppoon yhdistämiseen erilaisilla hakemistologiikoilla ja relaatioalgebran toiminnallisuuksilla liitos/yhdistys-tyyppisten operaatioiden tapauksessa. Voimme myös yhdistää useiden taulukoiden tiedot Pandat . Lisäksi pandat tarjoavat myös apuohjelmia kahden sarjan tai DataFramen vertailuun ja niiden erojen yhteenvetoon.
Datakehysten ketjuttaminen Pandasissa
Pandasin concat()-funktiota käytetään joko sarakkeiden tai rivien liittämiseen yhdestä DataFrame-kehyksestä toiseen. The Pandas concat()-funktio tekee kaiken raskaan noston ketjutusoperaatioiden suorittamisesta akselia pitkin samalla kun suorittaa valinnaista joukkologiikkaa (liitos tai leikkaus) indekseille (jos sellaisia on) muilla akseleilla.
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)> |
>
>
Lähtö:
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>
Liittyminen DataFramesiin Pandasissa
Kun liitimme DataFrame-kehyksemme yhteen, yksinkertaisesti lisäsimme ne toisiinsa eli pinoimme ne joko pystysuoraan tai vierekkäin. Toinen tapa yhdistää DataFrame-kehykset on käyttää kussakin tietojoukossa sarakkeita, jotka sisältävät yhteisiä arvoja (yhteinen yksilöllinen tunnus). DataFrame-kehysten yhdistämistä yhteisen kentän avulla kutsutaan yhdistämiseksi. Yhteisiä arvoja sisältäviä sarakkeita kutsutaan liitosavaimiksi. DataFrame-kehysten liittäminen tällä tavalla on usein hyödyllistä, kun yksi DataFrame on hakutaulukko, joka sisältää lisätietoa, jonka haluamme sisällyttää toiseen.
Huomautus: Tämä taulukkojen yhdistämisprosessi on samanlainen kuin mitä teemme taulukoiden kanssa SQL-tietokanta .
Kun liimaat yhteen useita DataFrame-kehyksiä, voit valita, kuinka käsitellä muita akseleita (muuta kuin ketjutettavaa). Tämä voidaan tehdä kahdella seuraavalla tavalla:
- Ota heidän kaikkien liitto, liity = 'ulkoinen'. Tämä on oletusasetus, koska se ei aiheuta tietojen menetystä.
- Ota risteys, join=’inner’.
Esimerkki: Kahden datakehyksen sisäinen liitos concat()-menetelmällä
Tässä esimerkissä kaksi pandan datakehystä,df1>jadf3>, ketjutetaan käyttämällä sisäistä liitosta niiden indeksien perusteella. Tuloksena oleva DataFrame, jonka nimi on 'tulos', sisältää vain rivit, joissa 'id'-sarakedf1>vastaa Kaupunki-sarakettadf3>.
Python 3
yhteyden muodostaminen java-tietokantaan
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)> |
>
>
Lähtö:
id Name City Age 0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>
Yhdistäminen append()-funktiolla
Hyödyllinen pikakuvake concat() on append()-instanssimenetelmä Series- ja DataFrame-järjestelmissä. Tätä menetelmää voidaan käyttää yhdistämään tietoja useista Pandas-taulukoista. Nämä menetelmät olivat itse asiassa ennen koncatia.
Esimerkki 1: Kahden datakehyksen yhdistäminen append()-menetelmällä
Tässä esimerkissä kaksi Pandas DataFrame -kehystä,df1>jadf2>, yhdistetään käyttämälläappend>menetelmällä, jolloin tuloksena on uusi DataFrame nimeltä 'tulos'. Tuloksena oleva DataFrame sisältää kaikki rivit molemmistadf1>jadf2>, jatkuvalla indeksillä.
parannettu silmukalle javalle
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)> |
>
>
Lähtö:
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>
Huomautus: append() voi viedä useita objekteja ketjuttaakseen.
Esimerkki 2: Yhdistä tiedot useista taulukoista Pandasissa
Tässä esimerkissä kolme Panda DataFrame -kehystä,df1>,df2>, jadf3>, liitetään yhteen käyttämälläappend>menetelmä. Tuloksena oleva DataFrame nimeltä 'tulos' yhdistää kaikki rivit kolmesta DataFramesta ylläpitäen jatkuvaa indeksiä.
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)> |
>
>
Lähtö:
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>