pandaer

Sådan deltager du i DataFrames i Pandas Python?

Sådan deltager du i DataFrames i Pandas Python?
Pandas DataFrame er en todimensional (2D) datastruktur, der er justeret i et tabelformat. Disse DataFrames kan kombineres ved hjælp af forskellige metoder såsom concat (), merge () og sammenføjninger. Pandaer har høj ydeevne og fuldt udstyrede tilslutningsoperationer, der ligner SQL-relationsdatabase. Ved hjælp af fletningsfunktionen kan tilslutningsoperationer implementeres mellem DataFrames-objekter.

Vi vil undersøge anvendelserne af fletningsfunktion, concat-funktion og forskellige typer sammenføjningsoperationer i Pandas python i denne artikel. Alle eksempler udføres via pycharm-editoren. Lad os starte med detaljerne!

Brug af fletningsfunktion

Den grundlæggende almindeligt anvendte syntaks for merge () -funktionen er angivet nedenfor:

pd.flet (df_obj1, df_obj2, hvordan = 'indre', on = Ingen, left_on = Ingen, right_on = Ingen)

Lad os forklare detaljerne i parametrene:

De to første df_obj1 og df_obj2 argumenter er navnene på DataFrame-objekter eller -tabeller.

Det "hvordan”-Parameter bruges til forskellige typer tilslutningsoperationer såsom“ venstre, højre, ydre og indre ”. Fletningsfunktionen bruger "indre" tilslutningsoperation som standard.

Argumentet "på" indeholder det kolonnenavn, som tilslutningsoperationen udføres på. Denne kolonne skal være til stede i begge DataFrame-objekter.

I argumenterne “left_on” og “right_on” er “left_on” navnet på kolonnenavnet som nøglen i venstre DataFrame. "Right_on" er navnet på den kolonne, der bruges som en nøgle fra den rigtige DataFrame.

For at uddybe konceptet med at slutte sig til DataFrames har vi taget to DataFrame-objekter - produkt og kunde. Følgende detaljer er til stede i produktets DataFrame:

produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Kundens DataFrame indeholder følgende detaljer:

kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Deltag i DataFrames på en nøgle

Vi kan nemt finde produkter, der sælges online, og de kunder, der har købt dem. Så baseret på nøglen "Product_ID" har vi udført indre sammenføjningsoperation på begge DataFrames som følger:

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'By': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, på = 'Product_ID'))

Følgende output vises på vinduet efter kørsel af ovenstående kode:

Hvis kolonnerne er forskellige i begge DataFrames, skal du eksplicit skrive navnet på hver kolonne ved hjælp af argumenterne left_on og right_on som følger:

importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'By': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Følgende output vises på skærmen:

Deltag i DataFrames ved hjælp af How Argument

I de følgende eksempler forklarer vi fire typer Joins-operationer på Pandas DataFrames:

Indre Deltag i Pandaer

Vi kan udføre en indre sammenføjning på flere taster. For at få vist flere detaljer om produktsalg skal du tage Product_ID, Seller_City fra produktet DataFrame og Product_ID og "Customer_City" fra kundens DataFrame for at finde ud af, at enten sælger eller kunde tilhører samme by. Implementér følgende kodelinjer:

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, hvordan = 'indre', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Følgende resultat vises i vinduet efter kørsel af ovenstående kode:

Fuld / ydre deltagelse i Pandaer

Ydre sammenføjninger returnerer både højre og venstre DataFrames-værdier, som enten har matches. Så for at implementere den ydre sammenføjning skal du indstille "hvordan" -argumentet som ydre. Lad os ændre ovenstående eksempel ved hjælp af det ydre tilslutningskoncept. I nedenstående kode returnerer den alle værdier for både venstre og højre DataFrames.

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, på = 'Produkt_ID', hvordan = 'ydre'))

Indstil indikatorargumentet som “Sandt”. Du vil bemærke, at den nye kolonne “_merge” tilføjes i slutningen.

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, på = 'Produkt_ID', hvordan = 'ydre', indikator = sand))

Som du kan se i nedenstående skærmbillede, forklarer fletningsværdierne, hvilken række der hører til hvilken DataFrame.

Venstre Deltag i Pandaer

Venstre sammenføjning viser kun rækker af venstre DataFrame.  Det svarer til den ydre sammenføjning. Så skift 'hvordan' argumentværdien med "venstre". Prøv følgende kode for at implementere ideen om Left join:

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, på = 'Product_ID', hvordan = 'venstre'))

Højre Deltag i Pandaer

Den højre sammenføjning holder alle rigtige DataFrame-rækker til højre sammen med de rækker, der også er almindelige i den venstre DataFrame. I dette tilfælde indstilles "hvordan" -argumentet som den "rigtige" værdi. Kør følgende kode for at implementere det rigtige tilslutningskoncept:

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.flet (produkt, kunde, på = 'Produkt_ID', hvordan = 'rigtigt'))

I det følgende skærmbillede kan du se resultatet efter at have kørt ovenstående kode:

Deltagelse i DataFrames ved hjælp af Concat () -funktionen

To DataFrames kan sammenføjes ved hjælp af concat-funktionen. Den grundlæggende syntaks for sammenkædningsfunktionen er angivet nedenfor:

pd.konkat ([df_obj1, df_obj_2]))

To DataFrames-objekter videregives som argumenter.

Lad os slutte os til både DataFrames-produkt og kunde gennem concat-funktionen. Kør følgende kodelinjer for at slutte dig til to DataFrames:

# import Pandas-bibliotek
importer pandaer som pd
produkt = pd.DataFrame (
'Produkt_ID': [101.102.103.104.105.106.107],
'Produkt_Navn': ['hovedtelefoner', 'Taske', 'Sko', 'Smartphone', 'Tandbørste', 'armbåndsur', 'Bærbar computer'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Dagligvarer', 'Mode', 'Elektronik'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kunde = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Alder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphones', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
udskrive (pd.concat ([produkt, kunde]))

Konklusion:

I denne artikel har vi diskuteret implementeringen af ​​merge () -funktion, concat () -funktioner og tilslutter sig operation i Pandas python. Ved hjælp af ovenstående metoder kan du nemt deltage i to DataFrames og lærte. hvordan man implementerer Join-operationerne “indre, ydre, venstre og højre” i Pandas. Forhåbentlig vil denne tutorial vejlede dig i implementeringen af ​​tilslutningsoperationer på forskellige typer DataFrames. Fortæl os venligst om dine vanskeligheder i tilfælde af fejl.

Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...