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-bibliotekimportera 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 pdprodukt = 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 koppling
- Yttre anslutning
- Left Join
- Right Join
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-bibliotekimportera 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-bibliotekimportera 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-bibliotekimportera 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-bibliotekimportera 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-bibliotekimportera 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-bibliotekimportera 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.