pandák

Hogyan lehet csatlakozni a DataFrame-ekhez a Pandas Pythonban?

Hogyan lehet csatlakozni a DataFrame-ekhez a Pandas Pythonban?
A Pandas DataFrame egy kétdimenziós (2D) adatstruktúra, amelyet táblázatos formában igazítanak. Ezeket a DataFrame-eket különböző módszerekkel kombinálhatjuk, például concat (), merge () és joins. A pandák nagy teljesítményűek és teljes funkcionalitású csatlakozási műveletekkel rendelkeznek, amelyek hasonlítanak az SQL relációs adatbázisra. Az egyesítés függvény segítségével az összekapcsolási műveletek megvalósíthatók a DataFrames objektumok között.

Ebben a cikkben megvizsgáljuk az egyesítési függvény, a concat függvény és a különböző típusú összekapcsolási műveletek alkalmazását a Pandas pythonban. Minden példát a pycharm szerkesztőjén keresztül hajtunk végre. Kezdjük a részletekkel!

Az Egyesítés funkció használata

Az egyesítés () függvény általánosan használt alapvető szintaxisa az alábbiakban található:

pd.egyesítés (df_obj1, df_obj2, hogyan = 'belső', be = Nincs, balra = nincs, jobbra = nincs)

Magyarázzuk el a paraméterek részleteit:

Az első kettő df_obj1 és df_obj2 Az argumentumok a DataFrame objektumok vagy táblák nevei.

A "hogyan”Paraméter különféle típusú összekapcsolási műveletekhez használható, például:„ bal, jobb, külső és belső ”. Az egyesítés funkció alapértelmezés szerint „belső” összekapcsolási műveletet használ.

A vita "tovább" tartalmazza az oszlop nevét, amelyen a csatlakozási műveletet végrehajtják. Ennek az oszlopnak mindkét DataFrame objektumban jelen kell lennie.

A „left_on” és a „right_on” argumentumokban a „left_on” az oszlop neve, mint kulcs a bal DataFrame-ben. A „right_on” az oszlop neve, amelyet kulcsként használnak a jobb DataFrame-ből.

A DataFrames-hez való csatlakozás koncepciójának bővebb kidolgozásához két DataFrame objektumot vettünk igénybe: termék és ügyfél. A következő részletek találhatók a DataFrame termékben:

termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Az ügyfél DataFrame a következő részleteket tartalmazza:

ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfél_neve': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Csatlakozzon a DataFrames-hez egy kulcson

Könnyen megtalálhatjuk az online értékesített termékeket és az azokat vásárló vásárlókat. Tehát a „Product_ID” kulcs alapján mindkét DataFrame-en belső összekapcsolási műveletet hajtottunk végre az alábbiak szerint:

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
„Város”: ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, on = 'Product_ID'))

Az alábbi kimenet jelenik meg az ablakon a fenti kód futtatása után:

Ha az oszlopok mindkét DataFrame-ben különböznek, akkor írja be az egyes oszlopok nevét a left_on és right_on argumentummal az alábbiak szerint:

import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
„Város”: ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, left_on = 'Product_Name', right_on = 'Product_Purchased'))

A következő kimenet jelenik meg a képernyőn:

Csatlakozzon a DataFrames-hez a How Argumentum használatával

A következő példákban a Pandas DataFrames négyféle csatlakozási műveletét ismertetjük:

Belső csatlakozás Pandákban

Belső csatlakozást hajthatunk végre több kulcson. Ha többet szeretne megtudni a termékeladásról, vegye a Product_ID, az Seller_City terméket a DataFrame és a Product_ID termékből, és az „Customer_City” elemet a vevő DataFrame-ből annak megállapításához, hogy az eladó vagy az ügyfél ugyanahhoz a városhoz tartozik. Végezze el a következő kódsorokat:

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, hogyan = 'belső', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

A fenti eredmény megjelenik az ablakon a fenti kód futtatása után:

Teljes / külső csatlakozás Pandákban

A külső csatlakozások mind a jobb, mind a bal DataFrames értékeket visszaadják, amelyeknek vannak egyezései. Tehát a külső összekapcsolás megvalósításához állítsa a „hogyan” argumentumot külsőnek. Módosítsuk a fenti példát a külső összekapcsolási koncepció használatával. Az alábbi kódban a bal és a jobb DataFrame összes értékét visszaadja.

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, on = 'Termék_ID', hogyan = 'külső'))

Állítsa az indikátor argumentumot True értékre. Észre fogja venni, hogy a végén hozzáadódik az új „_merge” oszlop.

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, on = 'Termék_ID', hogyan = 'külső', mutató = Igaz))

Amint az alábbi képernyőképen látható, az egyesítési oszlopértékek elmagyarázzák, melyik sor melyik DataFrame-hez tartozik.

Bal Csatlakozz a Pandákban

A bal oldali csatlakozás csak a bal DataFrame sorait jeleníti meg.  Hasonló a külső csatlakozáshoz. Tehát változtassa meg a "hogyan" argumentum értékét "balra". Próbálja ki a következő kódot a Bal oldali csatlakozás ötletének megvalósításához:

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, on = 'Product_ID', hogyan = 'left'))

Jobb Csatlakozz a Pandákhoz

A jobb oldali összekapcsolás megtartja az összes jobb DataFrame sort jobbra, valamint a bal oldali DataFrame-ben is gyakori sorokat. Ebben az esetben a „hogyan” argumentum „helyes” értékként van beállítva. Futtassa a következő kódot a megfelelő csatlakozási koncepció megvalósításához:

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.egyesítés (termék, vásárló, on = 'Product_ID', hogyan = 'right'))

A következő képernyőképen a fenti kód futtatása után láthatja az eredményt:

DataFrame-ek összekapcsolása a Concat () függvény segítségével

Két DataFrame összekapcsolható a konkat funkcióval. Az összefűzési függvény alapvető szintaxisa az alábbiakban található:

pd.konkat ([df_obj1, df_obj_2]))

Két DataFrames objektum fog továbbadni argumentumként.

Csatlakozzunk mind a DataFrames termékhez, mind az ügyfélhez a concat funkción keresztül. Futtassa a következő kódsorokat két DataFrame összekapcsolásához:

# import Pandas könyvtár
import pandák, mint pd
termék = pd.DataFrame (
„Product_ID”: [101,102,103,104,105,106,107],
'Product_Name': ['fejhallgató', 'táska', 'cipő', 'okostelefon', 'fogkefe', 'karóra', 'laptop'],
„Kategória”: [„Elektronika”, „Divat”, „Divat”, „Elektronika”, „Élelmiszerbolt”, „Divat”, „Elektronika”],
„Ár”: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
ügyfél = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
'Ügyfélnév': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Kor”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['fejhallgató', 'NA', 'karóra', 'NA', 'cipő', 'okostelefon', 'NA', 'NA', 'laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
nyomtatás (pd.konkat ([termék, vásárló]))

Következtetés:

Ebben a cikkben megvitattuk a merge () függvény, a concat () függvények és a csatlakozások működését a Pandas pythonban. A fenti módszerek használatával könnyen csatlakozhat két DataFrame-hez, és megtanulta. hogyan lehet megvalósítani a „belső, külső, bal és jobb” Join műveleteket Pandasban. Remélhetőleg ez a bemutató végigvezeti Önt a különböző típusú DataFrame-ekhez való csatlakozási műveletek végrehajtásában. Kérjük, értesítsen bennünket bármilyen problémájáról bármilyen hiba esetén.

Sid Meier Civilization VI letöltése és lejátszása Linuxon
Bevezetés a játékba A Civilization 6 egy modern felvétel a Age of Empires játékok sorozatában bevezetett klasszikus koncepcióra. Az ötlet meglehetősen...
A Doom telepítése és lejátszása Linuxon
Bevezetés a Doom-ba A Doom sorozat a 90-es években keletkezett az eredeti Doom megjelenése után. Azonnali sláger volt, és ettől kezdve a játéksorozat ...
Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...