pandas

Kā pievienoties DataFrames programmā Pandas Python?

Kā pievienoties DataFrames programmā Pandas Python?
Pandas DataFrame ir divdimensiju (2D) datu struktūra, kas ir izlīdzināta tabulas formātā. Šos DataFrames var apvienot, izmantojot dažādas metodes, piemēram, concat (), Merge () un join. Pandām ir augsta veiktspēja un pilnībā aprīkotas pievienošanās darbības, kas ir līdzīgas SQL relāciju datu bāzei. Izmantojot apvienošanas funkciju, starp DataFrames objektiem var tikt ieviestas apvienošanās darbības.

Šajā rakstā mēs izpētīsim apvienošanas funkcijas, concat funkcijas un dažādu veidu savienojumu darbību izmantošanu Pandas pitonā. Visi piemēri tiks izpildīti, izmantojot pycharm redaktoru. Sāksim ar detaļām!

Apvienošanas funkcijas izmantošana

Tālāk ir sniegta sapludināšanas () sintakses pamata sintakse:

pd.sapludināt (df_obj1, df_obj2, how = 'internal', on = None, left_on = None, right_on = None)

Paskaidrosim sīkāku informāciju par parametriem:

Pirmie divi df_obj1 un df_obj2 argumenti ir DataFrame objektu vai tabulu nosaukumi.

Parametrs tiek izmantots dažāda veida savienošanas operācijām, piemēram, “kreisais, labais, ārējais un iekšējais”. Apvienošanas funkcija pēc noklusējuma izmanto “iekšējo” savienošanas darbību.

Arguments “Ieslēgts” satur kolonnas nosaukumu, ar kuru tiek veikta savienošanas darbība. Šai kolonnai jābūt abos DataFrame objektos.

Argumentos “left_on” un “right_on” “left_on” ir kolonnas nosaukuma nosaukums kā atslēga kreisajā DataFrame. “Right_on” ir kolonnas nosaukums, ko izmanto kā atslēgu no labā DataFrame.

Lai sīkāk izstrādātu DataFrame pievienošanās koncepciju, esam ņēmuši divus DataFrame objektus - produktu un klientu. Produkta DataFrame satur šādu informāciju:

produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)

Klienta DataFrame satur šādu informāciju:

klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Produkta ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Pievienojieties DataFrames uz atslēgas

Mēs varam viegli atrast tiešsaistē pārdotus produktus un klientus, kuri tos iegādājās. Tātad, pamatojoties uz atslēgu “Product_ID”, abiem DataFrame mēs esam veikuši iekšējo savienojumu darbību šādi:

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Pilsēta': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, uz = 'Produkta_ID'))

Pēc iepriekš minētā koda palaišanas logā tiek parādīta šāda izeja:

Ja abās DataFrame kolonnās ir atšķirības, skaidri uzrakstiet katras kolonnas nosaukumu ar argumentiem left_on un right_on šādi:

importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Pilsēta': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Uz ekrāna parādīsies šāda izeja:

Pievienojieties DataFrames, izmantojot How Argument

Turpmāk sniegtajos piemēros mēs izskaidrosim četrus savienojumu darbību veidus ar Pandas DataFrames:

Iekšējais pievienošanās Pandas

Mēs varam veikt iekšēju savienojumu ar vairākiem taustiņiem. Lai parādītu sīkāku informāciju par produkta pārdošanu, paņemiet Product_ID, Seller_City no produkta DataFrame un Product_ID un “Customer_City” no klienta DataFrame, lai atrastu, ka pārdevējs vai klients pieder tai pašai pilsētai. Ievietojiet šādas koda rindas:

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.sapludināt (produkts, klients, kā = 'iekšējais', pa kreisi_ uz = ['produkta_ID', 'pārdevēja_pilsēta'], pa labi_uz = ['produkta_ID', 'pircēja_pilsēta']))

Pēc iepriekš minētā koda palaišanas logā tiek parādīts šāds rezultāts:

Pilna / ārēja pievienošanās Pandas

Ārējais savienojums atgriež gan labās, gan kreisās DataFrames vērtības, kurām ir atbilstības. Tātad, lai ieviestu ārējo savienojumu, iestatiet argumentu “kā” kā ārēju. Pārveidosim iepriekš minēto piemēru, izmantojot ārējā savienojuma koncepciju. Zemāk esošajā kodā tas atgriezīs visas vērtības gan kreisajā, gan labajā DataFrame.

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, uz = 'Produkta_ID', kā = 'ārējais'))

Iestatiet indikatora argumentu kā “True” s. Jūs ievērosiet, ka beigās ir pievienota jaunā sleja “_merge”.

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, uz = 'Produkta_ID', kā = 'ārējais', rādītājs = Patiesība))

Kā redzat zemāk redzamajā ekrānuzņēmumā, sapludināšanas kolonnu vērtības izskaidro, kura rinda kurai DataFrame pieder.

Pa kreisi pievienojies Pandās

Kreisais savienojums parāda tikai kreisā DataFrame rindas.  Tas ir līdzīgs ārējam savienojumam. Tātad, mainiet argumenta “kā” vērtību ar “pa kreisi”. Izmēģiniet šo kodu, lai īstenotu kreisās pievienošanās ideju:

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, uz = 'Produkta_ID', kā = 'pa kreisi'))

Labi pievienojieties Pandas

Labais savienojums saglabā visas labās DataFrame rindas pa labi kopā ar rindām, kas ir kopīgas arī kreisajā DataFrame. Šajā gadījumā arguments “kā” tiek iestatīts kā “pareizā” vērtība. Lai ieviestu pareizās pievienošanās koncepciju, palaidiet šo kodu:

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Produkta ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.apvienot (produkts, klients, uz = 'Produkta_ID', kā = 'Pareizi'))

Šajā ekrānuzņēmumā jūs varat redzēt rezultātu pēc iepriekš minētā koda izpildīšanas:

DataFrames pievienošana, izmantojot funkciju Concat ()

Divus DataFrames var savienot, izmantojot funkciju concat. Savienošanas funkcijas sintakse ir sniegta zemāk:

pd.concat ([df_obj1, df_obj_2]))

Divi DataFrames objekti tiks nodoti kā argumenti.

Pievienosimies gan DataFrames produktam, gan klientam, izmantojot funkciju concat. Lai pievienotos diviem DataFrames, palaidiet šādas koda rindas:

# importēt Pandas bibliotēku
importa pandas kā pd
produkts = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['austiņas', 'soma', 'apavi', 'viedtālrunis', 'zobu birste', 'rokas pulkstenis', 'klēpjdators'],
'Kategorija': ['Elektronika', 'Mode', 'Mode', 'Elektronika', 'Pārtikas preces', 'Mode', 'Elektronika'],
'Cena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karači', 'Rawalpindi', 'Islamabad', 'Karači', 'Faisalabad']
)
klients = pd.DataFrame (
“ID”: [1,2,3,4,5,6,7,8,9],
'Klienta_nosaukums': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
“Vecums”: [20,21,15,10,31,52,15,18,16],
“Product_ID”: [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['austiņas', 'NA', 'rokas pulkstenis', 'NA', 'apavi', 'viedtālrunis', 'NA', 'NA', 'klēpjdators'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karači', 'Karači', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
izdruka (pd.concat ([produkts, klients]))

Secinājums:

Šajā rakstā mēs esam apsprieduši sapludināšanas () funkcijas, funkciju concat () ieviešanas un pievienošanās darbību Pandas pitonā. Izmantojot iepriekš minētās metodes, jūs varat viegli savienot divus DataFrame un iemācīties. kā Pandas izpildīt Join operācijas “iekšējais, ārējais, kreisais un labais”. Cerams, ka šī apmācība palīdzēs jums ieviest pievienošanās operācijas dažāda veida DataFrames. Lūdzu, informējiet mūs par savām grūtībām kļūdu gadījumā.

Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...