pandaer

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 tabellformat. Disse DataFrames kan kombineres ved hjelp av forskjellige metoder som concat (), flette () og sammenføyninger. Pandaer har høy ytelse og fullstendige sammenkoblingsoperasjoner som ligner på SQL-relasjonsdatabase. Ved å bruke flettefunksjonen kan sammenføyningsoperasjoner implementeres mellom DataFrames-objekter.

Vi vil utforske bruken av flettefunksjon, konkatfunksjon og forskjellige typer sammenføyningsoperasjoner i Pandas python i denne artikkelen. Alle eksempler blir utført gjennom pycharm-redigereren. La oss starte med detaljene!

Bruk av Flettefunksjon

Den grunnleggende ofte brukte syntaksen for merge () -funksjonen er gitt nedenfor:

pd.flette (df_obj1, df_obj2, how = 'indre', på = Ingen, left_on = Ingen, right_on = Ingen)

La oss forklare detaljene i parametrene:

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

hvordan”-Parameter brukes til forskjellige typer sammenkoblingsoperasjoner som“ venstre, høyre, ytre og indre ”. Sammenslåingsfunksjonen bruker "indre" sammenkoblingsoperasjon som standard.

Argumentet "på" inneholder kolonnenavnet som tilknytningsoperasjonen utføres på. Denne kolonnen må være tilstede i begge DataFrame-objektene.

I argumentene "left_on" og "right_on" er "left_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 tilstede i produktets 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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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 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 online og kundene som kjøpte dem. Så, basert på nøkkelen "Product_ID", har vi utført indre sammenføyningsoperasjon på begge DataFrames som følger:

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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'],
'By': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriv ut (pd.flette (produkt, kunde, på = 'Product_ID'))

Følgende utgang vises i vinduet etter å ha kjørt ovennevnte kode:

Hvis kolonnene er forskjellige i begge DataFrames, så skriv navnet på hver kolonne eksplisitt med argumentene left_on og right_on 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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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'],
'By': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
skriv ut (pd.flette (produkt, kunde, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Følgende utgang vises på skjermen:

Bli med i DataFrames ved hjelp av How Argument

I de følgende eksemplene vil vi forklare fire typer Joins-operasjoner på Pandas DataFrames:

Indre Bli med i Pandaer

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

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skrive ut (pd.flette (produkt, kunde, hvordan = 'indre', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Følgende resultat vises i vinduet etter å ha kjørt ovennevnte kode:

Full / ytre sammenføyning i Pandas

Ytre sammenføyninger returnerer både høyre og venstre DataFrames-verdier, som enten har treff. Så, for å implementere den ytre sammenføyningen, sett "hvordan" -argumentet som ytre. La oss endre eksemplet ovenfor ved å bruke det ytre sammenføyningskonseptet. I koden nedenfor returnerer den alle verdiene til både venstre og høyre DataFrames.

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skriv ut (pd.flette (produkt, kunde, på = 'Produkt_ID', hvordan = 'ytre'))

Sett indikatorargumentet som “Sann”. Du vil legge merke til at den nye kolonnen “_merge” er lagt til på slutten.

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skrive ut (pd.flette (produkt, kunde, på = 'Product_ID', hvordan = 'ytre', indikator = True))

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

Venstre Bli med i Pandas

Venstre sammenføyning viser bare rader av venstre DataFrame.  Det ligner på den ytre skjøten. Så, endre 'hvordan' argumentverdien med "venstre". Prøv følgende kode for å implementere ideen om Left join:

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skrive ut (pd.flette (produkt, kunde, på = 'Product_ID', hvordan = 'venstre'))

Right Join i Pandas

Høyre sammenføyning holder alle riktige DataFrame-rader til høyre sammen med radene som også er vanlige i venstre DataFrame. I dette tilfellet settes "hvordan" -argumentet som "riktig" verdi. Kjør følgende kode for å implementere riktig sammenføyningskonsept:

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skriv ut (pd.flette (produkt, kunde, på = 'Product_ID', how = 'right'))

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

Sammenkobling av DataFrames ved hjelp av Concat () -funksjonen

To DataFrames kan settes sammen ved hjelp av concat-funksjonen. Den grunnleggende syntaksen 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-produktet og kunden gjennom concat-funksjonen. Kjør følgende kodelinjer for å bli med i to DataFrames:

# importer Pandas-biblioteket
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', 'Mote', 'Mote', 'Elektronikk', 'Dagligvarer', 'Mote', 'Elektronikk'],
'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.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']
)
skrive ut (pd.concat ([produkt, kunde]))

Konklusjon:

I denne artikkelen har vi diskutert implementeringen av merge () -funksjon, concat () -funksjoner, og blir med i drift i Pandas python. Ved å bruke metodene ovenfor kan du enkelt bli med i to DataFrames og lære. hvordan du implementerer Join-operasjonene “indre, ytre, venstre og høyre” i Pandas. Forhåpentligvis vil denne opplæringen veilede deg i implementering av tilknytningsoperasjoner på forskjellige typer DataFrames. Gi oss beskjed om dine vanskeligheter i tilfelle feil.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...