pandat

Kuinka liittyä DataFrame-kehyksiin Pandas Pythonissa?

Kuinka liittyä DataFrame-kehyksiin Pandas Pythonissa?
Pandas DataFrame on kaksiulotteinen (2D) tietorakenne, joka on tasattu taulukkomuodossa. Nämä DataFrame-kehykset voidaan yhdistää käyttämällä erilaisia ​​menetelmiä, kuten concat (), merge () ja liittymät. Pandoilla on korkea suorituskyky ja monipuoliset liittymistoiminnot, jotka muistuttavat SQL-relaatiotietokantaa. Yhdistämistoiminnon avulla yhdistämistoiminnot voidaan toteuttaa DataFrames-objektien välillä.

Tässä artikkelissa tutkitaan yhdistämistoiminnon, concat-toiminnon ja erityyppisten liitosoperaatioiden käyttöä Pandas pythonissa. Kaikki esimerkit suoritetaan pycharm-editorin kautta. Aloitetaan yksityiskohdista!

Yhdistämistoiminnon käyttö

Yhdistämisen () funktion yleisesti käytetty perussyntaksi on annettu alla:

pd.yhdistäminen (df_obj1, df_obj2, miten = 'sisempi', päällä = Ei mitään, vasen_on = Ei mitään, oikea_on = Ei mitään)

Selitetään parametrien yksityiskohdat:

Kaksi ensimmäistä df_obj1 ja df_obj2 argumentit ovat DataFrame-objektien tai -taulukoiden nimet.

"Miten”-Parametria käytetään erityyppisiin liitostoimintoihin, kuten“ vasen, oikea, ulompi ja sisempi ”. Yhdistämistoiminto käyttää oletusarvoisesti "sisäistä" liitostoimintoa.

Argumentti "päällä" sisältää sarakkeen nimen, jolle liitosoperaatio suoritetaan. Tämän sarakkeen on oltava molemmissa DataFrame-objekteissa.

"Left_on" ja "right_on" argumenteissa "left_on" on sarakkeen nimi avaimena vasemmassa DataFrame-kehyksessä. ”Right_on” on sarakkeen nimi, jota käytetään avaimena oikealta DataFrame-kehykseltä.

DataFrame-kehysten yhdistämisen käsitteen tarkentamiseksi olemme ottaneet kaksi DataFrame-objektia - tuotteen ja asiakkaan. Seuraavat tiedot ovat tuotteen DataFrame-kehyksessä:

tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Asiakkaan DataFrame sisältää seuraavat tiedot:

asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
'Product_Purchased': ['kuulokkeet', 'NA', 'rannekello', 'NA', 'kengät', 'älypuhelin', 'NA', 'NA', 'kannettava tietokone'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Liity DataFrame-kehyksiin avaimella

Voimme helposti löytää verkossa myydyt tuotteet ja asiakkaat, jotka ostivat ne. Joten avaimen ”Product_ID” perusteella olemme suorittaneet sisäisen liittämisen molemmille DataFrame-kehyksille seuraavasti:

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
Kaupunki: ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistää (tuote, asiakas, päällä = 'Tuotteen_ID'))

Seuraava lähtö näkyy ikkunassa, kun olet suorittanut yllä olevan koodin:

Jos sarakkeet eroavat molemmista DataFrame-kehyksistä, kirjoita nimenomaisesti kunkin sarakkeen nimi left_on- ja right_on-argumenteilla seuraavasti:

tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
'Product_Purchased': ['kuulokkeet', 'NA', 'rannekello', 'NA', 'kengät', 'älypuhelin', 'NA', 'NA', 'kannettava tietokone'],
Kaupunki: ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistäminen (tuote, asiakas, vasen_on = 'Tuotteen_nimi', oikea_l = 'Tuotteen_ostettu'))

Seuraava lähtö näkyy näytöllä:

Liity DataFrame-kehyksiin How Argumentin avulla

Seuraavissa esimerkeissä selitämme neljän tyyppisiä liittymisoperaatioita Pandas DataFrame -järjestelmissä:

Sisäinen liittyminen Pandaan

Voimme suorittaa sisäisen liitoksen useilla näppäimillä. Jos haluat näyttää lisätietoja tuotemyynnistä, ota Product_ID, Seller_City tuotteista DataFrame ja Product_ID ja "Customer_City" asiakkaan DataFrame-kehyksestä saadaksesi selville, että joko myyjä tai asiakas kuuluu samaan kaupunkiin. Toteuta seuraavat koodirivit:

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistäminen (tuote, asiakas, miten = 'sisempi', vasemmalle_on = ['Tuotteen_ID', 'Myyjän_kaupunki]], oikea_ = =' 'Tuotteen_ID', 'Asiakkaan_kaupunki]])

Seuraava tulos näkyy ikkunassa yllä olevan koodin suorittamisen jälkeen:

Täysi / ulompi liitos Pandassa

Ulkoiset liittymät palauttavat sekä oikean että vasemman DataFrames-arvon, joilla on joko vastaavuuksia. Joten ulkoisen liitoksen toteuttamiseksi aseta "miten" -argumentti ulkoiseksi. Muutetaan yllä olevaa esimerkkiä käyttämällä ulompaa liittymiskonseptia. Alla olevassa koodissa se palauttaa kaikki sekä vasemman että oikean DataFrame-kehyksen arvot.

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistäminen (tuote, asiakas, on = 'Tuotteen_ID', miten = 'ulompi'))

Aseta indikaattoriarvoksi True. Huomaat, että uusi ”_merge” -sarake lisätään loppuun.

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
'Product_Purchased': ['kuulokkeet', 'NA', 'rannekello', 'NA', 'kengät', 'älypuhelin', 'NA', 'NA', 'kannettava tietokone'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistää (tuote, asiakas, on = 'Tuotteen_ID', miten = 'ulompi', ilmaisin = Tosi))

Kuten alla olevasta kuvakaappauksesta näet, yhdistämissarakkeen arvot selittävät, mikä rivi mihin DataFrame-kehykseen kuuluu.

Vasen Liity Pandaan

Vasen liitos näyttää vain vasemman DataFrame-rivit.  Se on samanlainen kuin ulompi liitos. Joten vaihda miten-argumentin arvo vasemmalla. Kokeile seuraavaa koodia toteuttaa vasemman liittymisen idea:

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistää (tuote, asiakas, on = 'Tuotteen_ID', miten = 'vasemmalle'))

Oikea Liity Pandaan

Oikea liitos pitää kaikki oikeat DataFrame-rivit oikealla sekä rivit, jotka ovat yleisiä myös vasemmalla DataFrame-kehyksellä. Tässä tapauksessa "miten" -argumentti asetetaan "oikea" -arvoksi. Suorita seuraava koodi oikean liittymiskonseptin toteuttamiseksi:

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.yhdistää (tuote, asiakas, on = 'Tuotteen_ID', miten = 'Oikea'))

Seuraavassa kuvakaappauksessa näet tuloksen yllä olevan koodin suorittamisen jälkeen:

DataFrame-kehysten yhdistäminen Concat () -toiminnon avulla

Kaksi DataFrame-kehystä voidaan liittää concat-toiminnolla. Liitostoiminnon perussyntaksi on annettu alla:

pd.konkat ([df_obj1, df_obj_2]))

Kaksi DataFrames-objektia välitetään argumentteina.

Liityn sekä DataFrames-tuotteisiin että asiakkaisiin concat-toiminnon avulla. Suorita seuraavat koodirivit liittyäksesi kahteen DataFrame-kehykseen:

# tuo Pandas-kirjasto
tuoda pandoja pd: nä
tuote = pd.Datakehys(
Tuotteen tunnus: [101,102,103,104,105,106,107],
'Tuotteen_nimi': ['kuulokkeet', 'laukku', 'kengät', 'älypuhelin', 'hampaiden harja', 'rannekello', 'kannettava tietokone'],
'Luokka': ['Elektroniikka', 'Muoti', 'Muoti', 'Elektroniikka', 'Ruokakauppa', 'Muoti', 'Elektroniikka'],
'Hinta': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
asiakas = pd.Datakehys(
'ID': [1,2,3,4,5,6,7,8,9],
'Asiakkaan_nimi': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
Ikä: [20,21,15,10,31,52,15,18,16],
Tuotteen tunnus: [101,0106,0103104,0,0,0107],
Tuote_ostettu: ['kuulokkeet', 'NA', 'rannekello', 'NA', 'Kengät', 'Älypuhelin', 'NA', 'NA', 'Kannettava tietokone]],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tulosta (pd.konkat ([tuote, asiakas]))

Päätelmä:

Tässä artikkelissa olemme keskustelleet yhdistämis- () funktion, concat () -funktioiden ja liittymistoimintojen toteuttamisesta Pandas-pythonissa. Yllä olevia menetelmiä käyttämällä voit helposti liittää kaksi DataFrame-kehystä ja oppia. kuinka toteuttaa Join-toiminnot "sisempi, ulompi, vasen ja oikea" Pandassa. Toivottavasti tämä opetusohjelma opastaa sinua liittämistoimintojen toteuttamisessa erityyppisille DataFrame-kehyksille. Kerro meille ongelmistasi mahdollisten virheiden sattuessa.

Viisi parasta ergonomista tietokonehiirtä Linux-tuotteille
Aiheuttaako pitkäaikainen tietokoneen käyttö kipua ranteessasi tai sormissasi?? Onko sinulla nivelten jäykkyys ja sinun on jatkuvasti ravistettava kät...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...