Hvordan bli med Dataframes i Pandas Python?

Hvordan bli med Dataframes i Pandas Python?
Pandas DataFrame er en todimensjonal (2D) datastruktur som er justert i et tabellformat. Disse dataframene kan kombineres ved hjelp av forskjellige metoder som Concat (), Merge () og sammenføyning. Pandaer har høy ytelse, og fullverdige sammenføyningsoperasjoner som ligner på SQL Relational Database. Ved hjelp av Merge -funksjonen kan sammenføyning av operasjoner implementeres mellom DataFrames -objekter.

Vi vil utforske bruken av fusjonsfunksjon, konkatfunksjon og forskjellige typer sammenføyningsoperasjoner i Pandas Python i denne artikkelen. Alle eksempler vil bli utført gjennom Pycharm Editor. La oss starte med detaljene!

Bruk av fusjonsfunksjon

Den grunnleggende ofte brukte syntaks for fusjonsfunksjon () er gitt-below:

PD.Fusjon (DF_OBJ1, DF_OBJ2, How = 'Inner', On = Ingen, venstre_on = ingen, høyre_on = ingen)

La oss forklare detaljene i parametrene:

De to første DF_OBJ1 og DF_OBJ2 Argumenter er navnene på DataFrame -objekter eller tabeller.

hvordan”Parameter brukes til forskjellige typer sammenføyningsoperasjoner som“ Venstre, høyre, ytre og indre ”. Mergefunksjonen bruker “Inner” Join Operation som standard.

Argumentet "på" Inneholder kolonnens navn som sammenføyningsoperasjonen utføres. Denne kolonnen må være til stede i begge DataFrame -objekter.

I argumentene "venstre_on" og "høyre_on" er "venstre_on" navnet på kolonnenavnet som nøkkelen i venstre DataFrame. “Right_on” er navnet på kolonnen som brukes som en nøkkel fra riktig DataFrame.

For å utdype konseptet med å bli med i DataFrames, har vi tatt to DataFrame-objekter- Produkt og kunde. Følgende detaljer er til stede i produktet DataFrame:

Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Kunden DataFrame inneholder følgende detaljer:

Kunde = PD.Dataramme(
'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']
)

Bli med DataFrames på en nøkkel

Vi kan enkelt finne produkter som selges på nettet og kundene som kjøpte dem. Så basert på en nøkkel "Product_id" har vi utført indre sammenføyning på begge DataFrames som følger:

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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'],
'City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
Print (PD.Fusjon (produkt, kunde, ON = 'Product_id'))

Følgende utgang vises på vinduet etter å ha kjørt koden ovenfor:

Hvis kolonnene er forskjellige i begge DataFrames da, skriver du eksplisitt navnet på hver kolonne av venstre_on og høyre_on -argumenter som følger:

Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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'],
'City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
Print (PD.Merge (produkt, kunde, venstre_on = 'Product_name', right_on = 'Product_purchased'))

Følgende utgang vises på skjermen:

Bli med DataFrames ved å bruke hvordan argument

I de følgende eksemplene vil vi forklare fire typer sammenføyningsoperasjoner på Pandas Dataframes:

  • Indre sammenføyning
  • Ytre sammenføyning
  • Venstre bli med
  • Høyre bli med

Indre sammen med pandaer

Vi kan utføre en indre sammenføyning på flere nøkler. For å vise flere detaljer om produktsalget, ta Product_ID, Seller_City fra produktet DataFrame og Product_ID, og ​​“Customer_City” fra kunden DataFrame for å finne at enten selger eller kunde tilhører samme by. Implementere følgende kodelinjer:

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.Fusjon (produkt, kunde, hvordan = 'indre', venstre_on = ['produkt_id', 'selger_city'], høyre_on = ['Product_id', 'customer_city']))

Følgende resultat viser på vinduet etter å ha kjørt ovennevnte kode:

Full/ytre sammenføyning i pandaer

Ytre sammenføyninger returnerer både høyre og venstre dataframesverdier, som enten har kamper. Så for å implementere den ytre sammenføyningen, sett "hvordan" -argumentet som ytre. La oss endre eksemplet ovenfor ved å bruke Outer Join -konseptet. I koden nedenfor vil den returnere alle verdier av både venstre og høyre dataframes.

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.Fusjon (produkt, kunde, ON = 'Product_id', How = 'Ytre'))

Angi indikatorargumentet som "sanne". Du vil merke at den nye "_merge" -kolonnen er lagt til på slutten.

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.Merge (produkt, kunde, ON = 'Product_id', How = 'Ytre', Indicator = True)))

Som du kan se på skjermbildet nedenfor, forklarer flettekolonneverdiene hvilken rad som tilhører hvilken DataFrame.

Venstre bli med i Pandas

Venstre bli med bare visning av rader i venstre dataframe. Det ligner på den ytre sammenføyningen. Så endre "hvordan" argumentverdien med "venstre". Prøv følgende kode for å implementere ideen om venstre sammenføyning:

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.Fusjon (produkt, kunde, ON = 'Product_id', hvordan = 'venstre'))

Rett til å bli med i Pandas

Høyre sammenføyning holder alle høyre dataframdyr til høyre sammen med radene som også er vanlige i venstre dataframe. I dette tilfellet er "hvordan" argumentet satt som "riktig" verdi. Kjør følgende kode for å implementere riktig sammenkoblingskonsept:

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.Fusjon (produkt, kunde, ON = 'Product_id', How = 'Right')))

I det følgende skjermbildet kan du se resultatet etter å ha kjørt ovennevnte kode:

Sammenføyning av dataframes ved hjelp av concat () -funksjonen

To dataframes kan kobles sammen med Concat -funksjonen. Den grunnleggende syntaks for sammenkoblingsfunksjonen er gitt nedenfor:

PD.concat ([df_obj1, df_obj_2]))

To Dataframes -objekter vil passere som argumenter.

La oss bli med både DataFrames -produkt og kunde gjennom Concat -funksjonen. Kjør følgende kodelinjer for å bli med i to DataFrames:

# Importer Pandas Library
Importer pandaer som PD
Produkt = PD.Dataramme(
'Produkt_id': [101.102.103.104.105.106.107],
'Product_name': ['Headphones', 'Bag', 'Shoes', 'Smartphone', 'Teeth Brush', 'Wrist Watch', 'Laptop'],
'Kategori': ['Elektronikk', 'Fashion', 'Fashion', 'Electronics', 'Grocery', 'Fashion', 'Electronics'],
'Pris': [300.0,1000.50.2000.0,21999.0,145.0 1500.0,90999.0],
'Selger_city': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
Kunde = PD.Dataramme(
'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']
)
Print (PD.concat ([produkt, kunde]))

Konklusjon:

I denne artikkelen har vi diskutert implementeringen av Merge () -funksjonen, Concat () -funksjonene og blir med i Operation i Pandas Python. Ved hjelp av metodene ovenfor kan du enkelt bli med i to dataframmer og lært. Hvordan implementere sammenføyningsoperasjonene “indre, ytre, venstre og høyre” i pandaer. Forhåpentligvis vil denne opplæringen veilede deg i å implementere Join -operasjonene på forskjellige typer dataframmer. Gi oss beskjed om vanskene dine i tilfelle feil.