pandor

Hur man går med i DataFrames i Pandas Python?

Hur man går med i DataFrames i Pandas Python?
Pandas DataFrame är en tvådimensionell (2D) datastruktur som är inriktad i tabellformat. Dessa DataFrames kan kombineras med olika metoder som concat (), merge () och joins. Pandor har hög prestanda och kompletta anslutningsoperationer som liknar SQL-relationsdatabasen. Med hjälp av sammanslagningsfunktionen kan anslutningsoperationer implementeras mellan DataFrames-objekt.

Vi kommer att utforska användningen av sammanslagningsfunktion, konkatfunktion och olika typer av anslutningsoperationer i Pandas python i den här artikeln. Alla exempel körs via pycharm-redigeraren. Låt oss börja med detaljerna!

Användning av sammanslagningsfunktion

Den vanligaste syntaxen för merge () -funktionen ges nedan:

pd.slå samman (df_obj1, df_obj2, how = 'inner', on = None, left_on = None, right_on = None)

Låt oss förklara detaljerna i parametrarna:

De första två df_obj1 och df_obj2 argument är namnen på DataFrame-objekt eller -tabeller.

hur”-Parameter används för olika typer av anslutningsoperationer som” vänster, höger, yttre och inre ”. Sammanfogningsfunktionen använder "inre" anslutningsoperation som standard.

Argumentet "på" innehåller kolumnnamnet som kopplingsåtgärden utförs på. Den här kolumnen måste finnas i båda DataFrame-objekten.

I argumenten "left_on" och "right_on" är "left_on" namnet på kolumnnamnet som nyckeln i den vänstra DataFrame. ”Right_on” är namnet på kolumnen som används som en nyckel från rätt DataFrame.

För att utarbeta konceptet att gå med i DataFrames har vi tagit två DataFrame-objekt - produkt och kund. Följande detaljer finns i produktens DataFrame:

produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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 innehåller följande detaljer:

kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Gå med i DataFrames på en nyckel

Vi kan enkelt hitta produkter som säljs online och de kunder som köpte dem. Så baserat på en nyckel "Product_ID" har vi utfört inre kopplingsoperation på båda DataFrames enligt följande:

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Stad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, på = 'Product_ID'))

Följande utdata visas i fönstret efter att ha kört ovanstående kod:

Om kolumnerna skiljer sig åt i båda DataFrames, skriv då namnet på varje kolumn uttryckligen med argumenten left_on och right_on enligt följande:

importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Stad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Följande utdata visas på skärmen:

Gå med i DataFrames med How Argument

I följande exempel kommer vi att förklara fyra typer av Joins-operationer på Pandas DataFrames:

Inre Delta i Pandor

Vi kan utföra en inre koppling på flera tangenter. För att visa mer information om produktförsäljningen, ta Product_ID, Seller_City från produkten DataFrame och Product_ID och “Customer_City” från kundens DataFrame för att hitta att antingen säljaren eller kunden tillhör samma stad. Implementera följande kodrader:

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, hur = 'inner', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Följande resultat visas i fönstret efter att ha kört ovanstående kod:

Full / yttre gå med i Pandas

Yttre sammanfogningar returnerar både höger och vänster DataFrames-värden, som antingen har matchningar. Så, för att implementera den yttre kopplingen, ställ in ”hur” -argumentet som yttre. Låt oss ändra exemplet ovan med hjälp av det yttre anslutningskonceptet. I koden nedan returnerar den alla värden för både vänster och höger DataFrames.

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, på = 'Produkt_ID', hur = 'yttre'))

Ställ in indikatorargumentet som ”Sant”. Du kommer att märka att den nya kolumnen "_merge" läggs till i slutet.

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, på = 'Product_ID', hur = 'yttre', indikator = True))

Som du kan se i skärmbilden nedan förklarar värdena för kolumnerna för sammanfoga vilken rad som tillhör vilken DataFrame.

Vänster Gå med i Pandas

Vänster koppling visar bara rader till vänster DataFrame.  Det liknar den yttre skarven. Så ändra 'hur' argumentvärdet med "vänster". Försök med följande kod för att implementera idén om Left join:

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, på = 'Product_ID', hur = 'vänster'))

Right Join in Pandas

Den högra kopplingen håller alla rätt DataFrame-rader till höger tillsammans med de rader som också är vanliga i den vänstra DataFrame. I det här fallet ställs ”hur” -argumentet in som “rätt” värde. Kör följande kod för att implementera rätt anslutningskoncept:

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.slå samman (produkt, kund, på = 'Produkt_ID', hur = 'rätt'))

I följande skärmdump kan du se resultatet efter att ha kört ovanstående kod:

Sammankoppling av DataFrames med funktionen Concat ()

Två DataFrames kan förenas med hjälp av concat-funktionen. Sammanfattningsfunktionens grundläggande syntax ges nedan:

pd.concat ([df_obj1, df_obj_2]))

Två DataFrames-objekt skickas som argument.

Låt oss gå med både DataFrames-produkten och kunden genom concat-funktionen. Kör följande kodrader för att gå med i två DataFrames:

# importera Pandas-bibliotek
importera pandor som pd
produkt = pd.DataFrame (
'Produkt_ID': [101,102,103,104,105,106,107],
'Produktnamn': ['hörlurar', 'väska', 'skor', 'smartphone', 'tänderborste', 'armbandsur', 'bärbar dator'],
'Kategori': ['Elektronik', 'Mode', 'Mode', 'Elektronik', 'Livsmedelsbutik', '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']
)
kund = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Kundnamn': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Ålder': [20,21,15,10,31,52,15,18,16],
'Produkt_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['hörlurar', 'NA', 'armbandsur', 'NA', 'skor', 'smartphone', 'NA', 'NA', 'bärbar dator'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriva ut (pd.concat ([produkt, kund]))

Slutsats:

I den här artikeln har vi diskuterat implementeringen av merge () -funktion, concat () -funktioner och går med i Pandas python. Med hjälp av ovanstående metoder kan du enkelt gå med i två DataFrames och lärt dig. hur man implementerar Join-operationerna "inre, yttre, vänster och höger" i Pandas. Förhoppningsvis kommer den här guiden att vägleda dig vid implementeringen av anslutningsoperationerna på olika typer av DataFrames. Meddela oss om dina svårigheter i händelse av fel.

Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...