pandos

Kaip prisijungti prie „DataFrame“ „Pandas Python“?

Kaip prisijungti prie „DataFrame“ „Pandas Python“?
„Pandas DataFrame“ yra dviejų matmenų (2D) duomenų struktūra, kuri sulygiuota lentelių formatu. Šiuos „DataFrames“ galima sujungti naudojant įvairius metodus, tokius kaip concat (), suliejimas () ir sujungimai. Pandos pasižymi dideliu našumu ir visapusiškomis prisijungimo operacijomis, kurios panašios į SQL reliacinę duomenų bazę. Naudojant suliejimo funkciją, „DataFrames“ objektuose gali būti vykdomos sujungimo operacijos.

Šiame straipsnyje išnagrinėsime suliejimo funkcijos, „concat“ funkcijos ir skirtingų tipų sujungimo operacijų naudojimą „Pandas python“. Visi pavyzdžiai bus vykdomi per „pycharm“ redaktorių. Pradėkime nuo detalių!

Sujungimo funkcijos naudojimas

Toliau pateikiama pagrindinė dažniausiai naudojama sujungimo () sintaksė:

pd.sujungti (df_obj1, df_obj2, how = 'internal', on = None, left_on = None, right_on = None)

Paaiškinkime išsamią parametrų informaciją:

Pirmieji du df_obj1 ir df_obj2 argumentai yra „DataFrame“ objektų ar lentelių pavadinimai.

kaipParametras naudojamas įvairioms sujungimo operacijoms, tokioms kaip „kairė, dešinė, išorė ir vidinė“. Sujungimo funkcija pagal numatytuosius nustatymus naudoja „vidinę“ sujungimo operaciją.

Argumentas „Įjungta“ yra stulpelio pavadinimas, kuriame atliekama sujungimo operacija. Šis stulpelis turi būti abiejuose „DataFrame“ objektuose.

Argumentuose „left_on“ ir „right_on“ „left_on“ yra stulpelio pavadinimo pavadinimas, kaip raktas kairiajame „DataFrame“. „Right_on“ yra stulpelio pavadinimas, naudojamas kaip raktas iš dešiniojo „DataFrame“.

Norėdami išsiaiškinti „DataFrame“ sujungimo koncepciją, mes paėmėme du „DataFrame“ objektus - produktą ir klientą. Produkto „DataFrame“ yra tokia išsami informacija:

produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Ravalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)

Kliento „DataFrame“ yra tokia išsami informacija:

klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)

Sujunkite „DataFrames“ raktu

Mes lengvai galime rasti internete parduodamų produktų ir juos įsigijusių klientų. Taigi, remdamiesi raktu „Product_ID“, atlikome vidinio sujungimo operaciją abiejuose „DataFrame“:

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Ravalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Miestas“: ['Lahore', 'Islamabad', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Ravalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, on = 'Product_ID'))

Paleidus aukščiau nurodytą kodą, lange rodoma ši išvestis:

Jei abiejuose „DataFrame“ stulpeliai skiriasi, aiškiai parašykite kiekvieno stulpelio pavadinimą argumentais left_on ir right_on taip:

importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Rawalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Miestas“: ['Lahore', 'Islamabad', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Ravalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, kairysis_pavadinimas = „Produkto_vardas“, teisingas_pavadinimas = „Produkto_Pirktas“))

Ekrane bus rodoma ši išvestis:

Sujunkite „DataFrames“ naudodami „How Argument“

Toliau pateiktuose pavyzdžiuose paaiškinsime keturias „Pandas DataFrames“ prisijungimo operacijų rūšis:

Vidinis prisijungimas prie pandų

Mes galime atlikti vidinį sujungimą keliais klavišais. Norėdami parodyti daugiau informacijos apie produkto pardavimą, paimkite „Product_ID“, „Seller_City“ iš produktų „DataFrame“ ir „Product_ID“ ir „Customer_City“ iš kliento „DataFrame“, kad nustatytumėte, jog pardavėjas arba klientas priklauso tam pačiam miestui. Įdiekite šias kodo eilutes:

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Ravalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, kaip = 'vidinis', kairysis_on = ['Produkto_ID', 'Pardavėjo_miestis'], dešinysis_papildomas = ['Produkto_ID', 'Kliento_Miestas]])

Paleidus aukščiau nurodytą kodą lange rodomas toks rezultatas:

Visas / išorinis sujungimas Pandose

Išorinis prisijungimas grąžina tiek dešinę, tiek kairę „DataFrames“ reikšmes, kurios turi atitikmenis. Taigi, norėdami įgyvendinti išorinį sujungimą, nustatykite argumentą „kaip“ kaip išorinį. Pakeiskime aukščiau pateiktą pavyzdį naudodami išorinio sujungimo koncepciją. Žemiau pateiktame kode jis grąžins visas kairiųjų ir dešiniųjų „DataFrame“ reikšmes.

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Rawalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, apie = „Product_ID“, kaip = „išorinis“))

Nustatykite indikatoriaus argumentą kaip „True“ s. Pastebėsite, kad pabaigoje pridėtas naujas stulpelis „_merge“.

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Ravalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, = „Product_ID“, kaip = „external“, indikatorius = True))

Kaip matote toliau pateiktoje ekrano kopijoje, sujungimo stulpelio reikšmės paaiškina, kuri eilutė priklauso kuriai „DataFrame“.

Kairysis prisijungimas Pandose

Kairysis prisijungimas rodo tik kairio „DataFrame“ eilutes.  Jis panašus į išorinį sujungimą. Taigi pakeiskite argumento „kaip“ reikšmę „kairėn“. Išbandykite šį kodą, kad įgyvendintumėte kairiosios jungties idėją:

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Rawalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, apie = „Product_ID“, kaip = „kairė“))

Teisė Prisijunkite prie Pandų

Dešinysis sujungimas išlaiko visas dešines „DataFrame“ eilutes kartu su eilėmis, kurios taip pat yra įprastos kairiajame „DataFrame“. Šiuo atveju argumentas „kaip“ nustatomas kaip „teisinga“ reikšmė. Paleiskite šį kodą, kad įgyvendintumėte teisingo prisijungimo koncepciją:

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Rawalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.sujungti (produktas, klientas, = = Product_ID ", kaip = 'right'))

Šioje ekrano kopijoje galite pamatyti rezultatą paleidę pirmiau nurodytą kodą:

„DataFrame“ sujungimas naudojant „Concat“ () funkciją

Naudojant „concat“ funkciją, galima sujungti du „DataFrame“. Pagrindinė sujungimo funkcijos sintaksė pateikiama žemiau:

pd.concat ([df_obj1, df_obj_2]))

Du „DataFrames“ objektai bus perduoti kaip argumentai.

Prisijunkime prie „DataFrames“ produkto ir kliento per „concat“ funkciją. Norėdami sujungti du „DataFrame“, paleiskite šias kodo eilutes:

# importuoti „Pandas“ biblioteką
importuoti pandas kaip pd
produktas = pd.„DataFrame“ (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„ausinės“, „krepšys“, „batai“, „išmanusis telefonas“, „dantų šepetėlis“, „rankinis laikrodis“, „nešiojamas kompiuteris“],
„Kategorija“: [„Elektronika“, „Mada“, „Mada“, „Elektronika“, „Bakalėja“, „Mada“, „Elektronika“],
„Kaina“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City“: ['Islamabadas', 'Lahore', 'Karačis', 'Ravalpindi', 'Islamabadas', 'Karačis', 'Faisalabadas]]
)
klientas = pd.„DataFrame“ (
„ID“: [1,2,3,4,5,6,7,8,9],
„Customer_Name“: [„Sara“, „Sana“, „Ali“, „Raees“, „Mahwish“, „Umar“, „Mirha“, „Asif“, „Maria“],
„Amžius“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„ausinės“, „NA“, „rankinis laikrodis“, „NA“, „batai“, „išmanusis telefonas“, „NA“, „NA“, „nešiojamas kompiuteris“],
„Customer_City“: ['Lahore', 'Islamabadas', 'Faisalabad', 'Karačis', 'Karačis', 'Islamabadas', 'Rawalpindi', 'Islamabadas',
„Lahore“]
)
spausdinti (pd.concat ([produktas, klientas]))

Išvada:

Šiame straipsnyje aptarėme suliejimo (), concat () funkcijų ir prisijungimo prie „Pandas python“ operacijų įgyvendinimą. Naudodami aukščiau nurodytus metodus, galite lengvai sujungti du „DataFrame“ ir išmokti. kaip „Pandas“ įgyvendinti „Join“ operacijas „vidinė, išorinė, kairė ir dešinė“. Tikimės, kad ši pamoka padės jums įgyvendinti sujungimo operacijas su skirtingų tipų „DataFrame“. Jei kiltų klaida, praneškite mums apie savo sunkumus.

„Tomb Raider for Linux“ pamoka
„Tomb Raider“ šešėlis yra dvyliktas „Tomb Raider“ serijos priedas - veiksmo ir nuotykių žaidimų franšizė, sukurta „Eidos Montreal“. Žaidimą kritikai i...
Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...