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árimport 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 pdtermé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ő összekapcsolás
- Külső csatlakozás
- Balra csatlakozott
- Jobb csatlakozás
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árimport 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árimport 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árimport 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árimport 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árimport 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árimport 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.