pandad

Kuidas Pandas Pythonis DataFrame'idega liituda?

Kuidas Pandas Pythonis DataFrame'idega liituda?
Pandas DataFrame on kahemõõtmeline (2D) andmestruktuur, mis on joondatud tabelivormingus. Neid DataFrame'e saab kombineerida, kasutades erinevaid meetodeid, näiteks concat (), merge () ja join. Pandadel on kõrge jõudlus ja täisfunktsionaalsed liitumisoperatsioonid, mis sarnanevad SQL-i relatsiooniandmebaasiga. Ühendamisfunktsiooni abil saab DataFrames'i objektide vahel rakendada liitumisoperatsioone.

Uurime selles artiklis ühendamisfunktsiooni, konkatfunktsiooni ja erinevat tüüpi liitmistoimingute kasutamist Pandas pythonis. Kõik näited viiakse läbi pycharm-redaktori kaudu. Alustame üksikasjadest!

Ühendamisfunktsiooni kasutamine

Allpool on toodud põhiline tavaliselt kasutatav ühendamise () süntaks:

pd.ühenda (df_obj1, df_obj2, kuidas = 'sisemine', sees = puudub, vasakul_on = pole, paremal_on = pole)

Selgitame parameetrite üksikasju:

Kaks esimest df_obj1 ja df_obj2 argumendid on objektide DataFrame või tabelite nimed.

"kuidas”Parameetrit kasutatakse erinevat tüüpi liitmistoimingute jaoks, näiteks“ vasak, parem, välimine ja sisemine ”. Ühendamisfunktsioon kasutab vaikimisi „sisemist” liitumisoperatsiooni.

Argument "peal" sisaldab veeru nime, millega liitumisoperatsioon tehakse. See veerg peab olema mõlemas DataFrame'i objektis.

Argumentides “left_on” ja “right_on” on “left_on” vasakpoolse DataFrame'i võtmena veeru nime nimi. Parempoolne sees on veeru nimi, mida kasutatakse parempoolse DataFrame'i võtmena.

DataFrame'i ühendamise kontseptsiooni täpsustamiseks võtsime kaks DataFrame'i objekti - toote ja kliendi. Tootel DataFrame on järgmised üksikasjad:

toode = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Kliendi DataFrame sisaldab järgmisi üksikasju:

klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

DataFrame'idega liitumine võtmel

Leiame hõlpsasti veebis müüdavad tooted ja kliendid, kes need ostsid. Niisiis, võtme „Product_ID” põhjal oleme mõlema DataFrame'i sisemise ühendamise toimingu teinud järgmiselt:

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti',
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Linn': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühendamine (toode, klient, = = toote_ID)))

Pärast ülaltoodud koodi käivitamist kuvatakse aknas järgmine väljund:

Kui veerud on mõlemas DataFrame'is erinevad, kirjutage iga veeru nimi selgesõnaliselt argumentidega left_on ja right_on järgmiselt:

impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Linn': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühendamine (toode, klient, vasak_on = 'Toote_nimi', parem_on = 'Toote_ostetud'))

Ekraanil kuvatakse järgmine väljund:

Liituge DataFramesiga, kasutades argumenti How

Järgmistes näidetes selgitame nelja tüüpi ühendamise operatsioone Pandas DataFrames:

Sisemine liitumine Pandas

Saame sisemise ühendamise teha mitmel võtmel. Toote müügi kohta lisateabe kuvamiseks võtke toote DataFrame ja Product_ID alt välja Product_ID, Seller_City ja kliendilt DataFrame väärtus „Customer_City”, et leida, kas müüja või klient kuuluvad samasse linna. Rakendage järgmised koodiread:

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühenda (toode, klient, kuidas = 'sisemine', vasakule_on = ['Toote_ID', 'Müüja_linn'], paremale_ = = 'Toote_ID', 'Kliendi_linn'])

Pärast ülaltoodud koodi käivitamist kuvatakse aknas järgmine tulemus:

Täis / välimine liitumine Pandas

Välised liitumised tagastavad nii parema kui ka vasakpoolse DataFrame'i väärtused, millel on kas vasted. Niisiis, välise liitmise rakendamiseks määrake argument "kuidas" väliseks. Muutkem ülaltoodud näidet, kasutades välise liitmise kontseptsiooni. Allolevas koodis tagastab kõik nii vasak- kui ka parempoolse DataFrame'i väärtused.

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühenda (toode, klient, = = toote_ID, kuidas = välimine))

Määrake indikaatori argumendiks “True” s. Märkate, et lõpus lisatakse uus veerg „_merge“.

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühendamine (toode, klient, = = Product_ID ", kuidas =" external ", näitaja = True))

Nagu näete alloleval ekraanipildil, selgitavad veeru ühendamise väärtused, milline rida millisesse DataFrame'i kuulub.

Vasakpoolne liitumine Pandas

Vasakpoolne liitumine kuvab ainult vasakpoolse DataFrame'i ridu.  See sarnaneb välise ühendusega. Niisiis, muutke argumendi "kuidas" väärtus väärtusega "vasak". Vasakpoolse liitumise idee rakendamiseks proovige järgmist koodi:

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühendada (toode, klient, = = toote_ID, kuidas = vasakule))

Parem ühine Pandas

Parem liitmine hoiab kõik paremad DataFrame'i read paremal koos ridadega, mis on levinud ka vasakpoolses DataFrame'is. Sel juhul määratakse argument „kuidas” väärtuseks „õige”. Õige liitumiskontseptsiooni juurutamiseks käivitage järgmine kood:

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.ühendama (toode, klient, = = toote_ID, kuidas = 'õige'))

Järgmisel ekraanipildil näete tulemust pärast ülaltoodud koodi käivitamist:

DataFrame'i ühendamine funktsiooni Concat () abil

Concat funktsiooni abil saab ühendada kaks DataFrame'i. Liitmise funktsiooni põhisüntaks on toodud allpool:

pd.konkat ([df_obj1, df_obj_2]))

Kaks DataFrames'i objekti läbivad argumendid.

Liitume funktsiooni concat kaudu nii DataFrames'i toote kui ka kliendiga. Kahe DataFrame'i ühendamiseks käivitage järgmised koodiread:

# impordi Pandate kogu
impordi pandad kui pd
toode = pd.DataFrame (
„Toote ID”: [101,102,103,104,105,106,107],
'Product_Name': ['kõrvaklapid', 'kott', 'kingad', 'nutitelefon', 'hambahari', 'käekell', 'sülearvuti'],
'Kategooria': ['elektroonika', 'mood', 'mood', 'elektroonika', 'toidupoed', 'mood', 'elektroonika'],
'Hind': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
klient = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Kliendi nimi”: ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vanus”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0106,0,0103,104,0,0,0107],
'Product_Purchased': ['kõrvaklapid', 'NA', 'käekell', 'NA', 'kingad', 'nutitelefon', 'NA', 'NA', 'sülearvuti'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
trükk (pd.konkat ([toode, klient]))

Järeldus:

Selles artiklis oleme arutanud ühendamise () funktsiooni, concat () funktsioonide rakendamist ja operatsioonide ühendamist Pandas pythonis. Kasutades ülaltoodud meetodeid, saate hõlpsasti liituda kahe DataFrame-iga ja õppida. kuidas rakendada Pandas liitumisoperatsioone "sisemine, välimine, vasak ja parem". Loodetavasti juhendab see õpetus teid eri tüüpi DataFrame'i ühendamisoperatsioonide rakendamisel. Palun andke meile teada oma raskustest võimalike vigade korral.

Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...
Kommertsmängumootorite avatud lähtekoodiga sadamad
Tasuta, avatud lähtekoodiga ja platvormidevaheliste mängumootorite puhkusereise saab kasutada nii vanade kui ka mõnede üsna hiljutiste mängude pealkir...
Parimad Linuxi käsurea mängud
Käsurida pole Linuxi kasutamisel lihtsalt teie suurim liitlane - see võib olla ka meelelahutusallikas, sest saate seda kasutada paljude lõbusate mängu...