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-kirjastotuoda 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
- Ulkopuolinen liittyminen
- Vasen liittyminen
- Oikea liittyminen
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-kirjastotuoda 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-kirjastotuoda 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-kirjastotuoda 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-kirjastotuoda 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-kirjastotuoda 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-kirjastotuoda 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.