Duomenų analizė naudojant Python

Šiame straipsnyje aptarsime, kaip atlikti duomenų analizę naudojant Python. Aptarsime visų rūšių duomenų analizę, t.

Duomenų analizė naudojant Python

Duomenų analizė yra duomenų rinkimo, transformavimo ir tvarkymo technika, kad būtų galima numatyti ateities prognozes ir priimti pagrįstais duomenimis pagrįstus sprendimus. Tai taip pat padeda rasti galimus verslo problemos sprendimus. Yra šeši duomenų analizės žingsniai. Jie yra:

  • Klauskite arba nurodykite duomenų reikalavimus
  • Paruoškite arba rinkkite duomenis
  • Valyti ir apdoroti
  • Analizuoti
  • Dalintis
  • Veikti arba pranešti

Duomenų analizė naudojant Python



Pastaba: Norėdami sužinoti daugiau apie šiuos veiksmus, skaitykite mūsų NumPy yra masyvo apdorojimo paketas Python ir suteikia didelio našumo daugiamačio masyvo objektą ir įrankius darbui su šiais masyvais. Tai pagrindinis mokslinio skaičiavimo su Python paketas.

Masyvai „NumPy“.

NumPy masyvas yra tų pačių tipų elementų (dažniausiai skaičių) lentelė, indeksuota teigiamų sveikųjų skaičių eilute. Numpy masyvo matmenų skaičius vadinamas masyvo rangu. Sveikųjų skaičių rinkinys, nurodantis masyvo dydį kiekviename matmenyje, yra žinomas kaip masyvo forma.

NumPy masyvo kūrimas

NumPy masyvai gali būti sukurti keliais būdais su įvairiais rangais. Jis taip pat gali būti sukurtas naudojant skirtingus duomenų tipus, pvz., sąrašus, eilutes ir tt Gauto masyvo tipas nustatomas pagal sekose esančių elementų tipą. „NumPy“ siūlo keletą funkcijų, leidžiančių sukurti masyvus su pradiniu rezervuotos vietos turiniu. Tai sumažina masyvų auginimo poreikį, o tai yra brangi operacija.

Sukurkite masyvą naudodami numpy.empty(forma, dtype=float, order='C')

Python3
import numpy as np b = np.empty(2, dtype = int) print('Matrix b : 
', b) a = np.empty([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.empty([3, 3]) print('
Matrix c : 
', c) 

Išvestis:

Tuščia matrica naudojant pandas

Tuščia matrica naudojant pandas

Sukurkite masyvą naudodami numpy.zeros(forma, dtype = nėra, tvarka = 'C')

Python3
import numpy as np b = np.zeros(2, dtype = int) print('Matrix b : 
', b) a = np.zeros([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.zeros([3, 3]) print('
Matrix c : 
', c) 

Išvestis:

Matrix b :   [0 0]  Matrix a :   [[0 0]  [0 0]]  Matrix c :   [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]] 

Operacijos su numpy masyvais

Aritmetiniai veiksmai

  • Papildymas:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing addition using arithmetic operator add_ans = a+b print(add_ans) # Performing addition using numpy function add_ans = np.add(a, b) print(add_ans) # The same functions and operations can be used for # multiple matrices c = np.array([1, 2, 3, 4]) add_ans = a+b+c print(add_ans) add_ans = np.add(a, b, c) print(add_ans) 

Išvestis:

[ 7 77 23 130] [ 7 77 23 130] [ 8 79 26 134] [ 7 77 23 130] 
  • Atimtis:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing subtraction using arithmetic operator sub_ans = a-b print(sub_ans) # Performing subtraction using numpy function sub_ans = np.subtract(a, b) print(sub_ans) 

Išvestis:

[ 3 67 3 70] [ 3 67 3 70] 
  • Daugyba:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing multiplication using arithmetic # operator mul_ans = a*b print(mul_ans) # Performing multiplication using numpy function mul_ans = np.multiply(a, b) print(mul_ans) 

Išvestis:

[ 10 360 130 3000] [ 10 360 130 3000] 
  • Padalinys:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing division using arithmetic operators div_ans = a/b print(div_ans) # Performing division using numpy functions div_ans = np.divide(a, b) print(div_ans) 

Išvestis:

[ 2.5 14.4 1.3 3.33333333] [ 2.5 14.4 1.3 3.33333333] 

Daugiau informacijos rasite mūsų NumPy – aritmetinių operacijų pamoka

NumPy masyvo indeksavimas

Indeksavimas galima atlikti NumPy naudojant masyvą kaip indeksą. Pjūvio atveju grąžinamas rodinys arba sekli masyvo kopija, bet rodyklės masyve – originalaus masyvo kopija. Numpy masyvai gali būti indeksuojami su kitais masyvais arba bet kokia kita seka, išskyrus eilutes. Paskutinis elementas indeksuojamas -1 sekunde, paskutinis -2 ir pan.

Python NumPy masyvo indeksavimas

Python3
# Python program to demonstrate # the use of index arrays. import numpy as np # Create a sequence of integers from # 10 to 1 with a step of -2 a = np.arange(10, 1, -2) print('
 A sequential array with a negative step: 
',a) # Indexes are specified inside the np.array method. newarr = a[np.array([3, 1, 2 ])] print('
 Elements at these indices are:
',newarr) 

Išvestis:

A sequential array with a negative step:   [10 8 6 4 2]   Elements at these indices are:  [4 8 6] 

NumPy masyvo pjaustymas

Apsvarstykite sintaksę x[obj], kur x yra masyvas, o obj yra indeksas. Pjūvio objektas yra indeksas atveju pagrindinis pjaustymas . Pagrindinis pjaustymas įvyksta, kai obj yra:

  • pjūvio objektas, kurio forma yra pradžia: stop: žingsnis
  • sveikasis skaičius
  • arba skilties objektų ir sveikųjų skaičių rinkinys

Visi masyvai, sukurti naudojant pagrindinį pjaustymą, visada yra pradinio masyvo rodinys.

Python3
# Python program for basic slicing. import numpy as np # Arrange elements from 0 to 19 a = np.arange(20) print('
 Array is:
 ',a) # a[start:stop:step] print('
 a[-8:17:1] = ',a[-8:17:1]) # The : operator means all elements till the end. print('
 a[10:] = ',a[10:]) 

Išvestis:

Array is: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]  a[-8:17:1] = [12 13 14 15 16]  a[10:] = [10 11 12 13 14 15 16 17 18 19] 

Elipsė taip pat gali būti naudojama kartu su pagrindiniu pjaustymu. Elipsė (…) yra : objektų, reikalingų tokio pat ilgio kaip masyvo matmenys atrankos eilutei, skaičius.

Python3
# Python program for indexing using basic slicing with ellipsis import numpy as np # A 3 dimensional array. b = np.array([[[1, 2, 3],[4, 5, 6]], [[7, 8, 9],[10, 11, 12]]]) print(b[...,1]) #Equivalent to b[: ,: ,1 ] 

Išvestis:

[[ 2 5]  [ 8 11]] 

NumPy Array transliacija

Terminas transliacija nurodo, kaip numpy apdoroja skirtingų matmenų masyvus atliekant aritmetines operacijas, dėl kurių atsiranda tam tikrų apribojimų, mažesnis masyvas transliuojamas per didesnį masyvą, kad jų formos būtų suderinamos.

Tarkime, kad turime didelį duomenų rinkinį, kiekvienas atskaitos taškas yra parametrų sąrašas. Numpy turime 2-D masyvą, kur kiekviena eilutė yra atskaitos taškas, o eilučių skaičius yra duomenų rinkinio dydis. Tarkime, kad norime pritaikyti tam tikrą mastelį visiems šiems duomenims, kiekvienas parametras gauna savo mastelio koeficientą arba tarkime, kad kiekvienas parametras padauginamas iš kokio nors koeficiento.

Kad būtų aiškus supratimas, skaičiuokime kalorijas maisto produktuose naudodami makroelementų suskirstymą. Grubiai tariant, kaloringas maisto dalis sudaro riebalai (9 kalorijos grame), baltymai (4 CPG) ir angliavandeniai (4 CPG). Taigi, jei išvardijame kai kuriuos maisto produktus (mūsų duomenis) ir kiekvieno maisto produkto makroelementų pasiskirstymą (parametrus), galime padauginti kiekvieną maistinę medžiagą iš jos kalorijų vertės (taikyti mastelio keitimą), kad apskaičiuotume kiekvieno maisto produkto kalorijų pasiskirstymą.

NumPy Array transliacija

Atlikę šią transformaciją, dabar galime apskaičiuoti visą naudingą informaciją. Pavyzdžiui, koks yra bendras kalorijų skaičius kai kuriuose maisto produktuose arba, atsižvelgiant į vakarienės suskirstymą, žinoti, kiek kalorijų gavau iš baltymų ir pan.

Pažiūrėkime naivų būdą, kaip atlikti šį skaičiavimą naudojant Numpy:

Python3
import numpy as np macros = np.array([ [0.8, 2.9, 3.9], [52.4, 23.6, 36.5], [55.2, 31.7, 23.9], [14.4, 11, 4.9] ]) # Create a new array filled with zeros, # of the same shape as macros. result = np.zeros_like(macros) cal_per_macro = np.array([3, 3, 8]) # Now multiply each row of macros by # cal_per_macro. In Numpy, `*` is # element-wise multiplication between two arrays. for i in range(macros.shape[0]): result[i, :] = macros[i, :] * cal_per_macro result 

Išvestis:

array([[ 2.4, 8.7, 31.2],  [157.2, 70.8, 292. ],  [165.6, 95.1, 191.2],  [ 43.2, 33. , 39.2]]) 

Transliacijos taisyklės: Transliuojant du masyvus kartu reikia laikytis šių taisyklių:

  • Jei masyvai nėra vienodo rango, prieš žemesnio rango masyvo formą pridėkite 1s, kol abi formos bus vienodo ilgio.
  • Dviejų masyvų matmenys yra suderinami, jei jų matmenys yra tokio paties dydžio arba jei vieno iš masyvų matmenys yra 1 dydžio.
  • Masyvai gali būti transliuojami kartu, jei jie suderinami su visais matmenimis.
  • Po transliavimo kiekvienas masyvas elgiasi taip, lyg jo forma būtų lygi dviejų įvesties masyvų maksimaliai elementų formai.
  • Bet kuriame matmenyje, kai vieno masyvo dydis yra 1, o kito masyvo dydis didesnis nei 1, pirmasis masyvas elgiasi taip, lyg būtų nukopijuotas pagal tą matmenį.
Python3
import numpy as np v = np.array([12, 24, 36]) w = np.array([45, 55]) # To compute an outer product we first # reshape v to a column vector of shape 3x1 # then broadcast it against w to yield an output # of shape 3x2 which is the outer product of v and w print(np.reshape(v, (3, 1)) * w) X = np.array([[12, 22, 33], [45, 55, 66]]) # x has shape 2x3 and v has shape (3, ) # so they broadcast to 2x3, print(X + v) # Add a vector to each column of a matrix X has # shape 2x3 and w has shape (2, ) If we transpose X # then it has shape 3x2 and can be broadcast against w # to yield a result of shape 3x2. # Transposing this yields the final result # of shape 2x3 which is the matrix. print((X.T + w).T) # Another solution is to reshape w to be a column # vector of shape 2X1 we can then broadcast it # directly against X to produce the same output. print(X + np.reshape(w, (2, 1))) # Multiply a matrix by a constant, X has shape 2x3. # Numpy treats scalars as arrays of shape(); # these can be broadcast together to shape 2x3. print(X * 2) 

Išvestis:

[[ 540 660]  [1080 1320]  [1620 1980]] [[ 24 46 69]  [ 57 79 102]] [[ 57 67 78]  [100 110 121]] [[ 57 67 78]  [100 110 121]] [[ 24 44 66]  [ 90 110 132]] 

Pastaba: Daugiau informacijos rasite mūsų Python NumPy pamoka .

Duomenų analizė naudojant Pandas

Python Pandas Naudojamas reliaciniams arba pažymėtiems duomenims ir pateikia įvairias duomenų struktūras, skirtas manipuliuoti tokiais duomenimis ir laiko eilutėmis. Ši biblioteka sukurta ant NumPy bibliotekos. Šis modulis paprastai importuojamas kaip:

import pandas as pd 

Čia pd vadinamas pandų slapyvardžiu. Tačiau nebūtina importuoti bibliotekos naudojant slapyvardį, tai tiesiog padeda įrašyti mažesnį sumos kodą kiekvieną kartą, kai iškviečiamas metodas ar ypatybė. Pandos paprastai teikia dvi duomenų struktūras, skirtas manipuliuoti duomenimis. Jos yra:

  • Serija
  • Duomenų rėmelis

Serija:

Pandos serija yra vienmatis pažymėtas masyvas, galintis laikyti bet kokio tipo duomenis (sveikasis skaičius, eilutės, float, python objektai ir kt.). Ašių etiketės bendrai vadinamos indeksais. „Panda“ serija yra ne kas kita, kaip „Excel“ lapo stulpelis. Etiketės neturi būti unikalios, bet turi būti maišos tipo. Objektas palaiko tiek sveikųjų skaičių, tiek etiketėmis pagrįstą indeksavimą ir pateikia daugybę metodų, leidžiančių atlikti operacijas, susijusias su indeksu.

Pandos serija

Jį galima sukurti naudojant Series() funkciją, įkeliant duomenų rinkinį iš esamos saugyklos, pvz., SQL, duomenų bazės, CSV failų, „Excel“ failų ir kt., arba iš duomenų struktūrų, pvz., sąrašų, žodynų ir kt.

Python pandų kūrimo serija

Python3
import pandas as pd import numpy as np # Creating empty series ser = pd.Series() print(ser) # simple array data = np.array(['g', 'e', 'e', 'k', 's']) ser = pd.Series(data) print(ser) 

Išvestis:

serija pnadas

serija pnadas

Duomenų rėmelis:

Pandas DataFrame yra dvimatė keičiamo dydžio, potencialiai nevienalytė lentelių duomenų struktūra su pažymėtomis ašimis (eilelėmis ir stulpeliais). Duomenų rėmelis yra dvimatė duomenų struktūra, t. y. duomenys išlygiuojami lentelės būdu eilutėse ir stulpeliuose. Pandas DataFrame susideda iš trijų pagrindinių komponentų – duomenų, eilučių ir stulpelių.

Pandos duomenų rėmelis

Jis gali būti sukurtas naudojant Dataframe() metodą ir, kaip ir serija, taip pat gali būti iš skirtingų failų tipų ir duomenų struktūrų.

Python Pandos duomenų rėmelio kūrimas

Python3
import pandas as pd # Calling DataFrame constructor df = pd.DataFrame() print(df) # list of strings lst = ['Geeks', 'For', 'Geeks', 'is', 'portal', 'for', 'Geeks'] # Calling DataFrame constructor on list df = pd.DataFrame(lst) df 

Išvestis:

Duomenų rėmelio kūrimas iš sąrašo

Dataframe kūrimas iš python sąrašo

Duomenų rėmelio kūrimas iš CSV

Mes galime sukurti duomenų rėmelį iš CSV failus naudojant skaityti_csv() funkcija.

Python Pandas skaito CSV

Python3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # Printing top 5 rows df.head() 

Išvestis:

duomenų rėmelio galva

duomenų rėmelio galva

„DataFrame“ filtravimas

Pandos dataframe.filter() Funkcija naudojama duomenų rėmelio eilėms arba stulpeliams pogrupuoti pagal nurodyto indekso etiketes. Atminkite, kad ši rutina nefiltruoja savo turinio duomenų rėmelio. Filtras taikomas indekso etiketėms.

Python Pandas Filter Dataframe

Python3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # applying filter function df.filter(['Species', 'SepalLengthCm', 'SepalLengthCm']).head() 

Išvestis:

Duomenų rinkiniui taikomas filtras

Duomenų rinkiniui taikomas filtras

„DataFrame“ rūšiavimas

Norint surūšiuoti duomenų rėmelį pandose, funkcija Rūšiuoti_vertes() yra naudojamas. Pandos sort_values() gali rūšiuoti duomenų rėmelį didėjančia arba mažėjančia tvarka.

Python Pandas duomenų rėmelio rūšiavimas didėjančia tvarka

Išvestis:

Surūšiuotas duomenų rinkinys pagal stulpelio vertę

Surūšiuotas duomenų rinkinys pagal stulpelio vertę

Pandas GroupBy

Grupuoti pagal yra gana paprasta sąvoka. Galime sukurti kategorijų grupes ir kategorijoms pritaikyti funkciją. Realiuose duomenų mokslo projektuose susidursite su dideliais duomenų kiekiais ir išbandysite viską, todėl siekdami efektyvumo naudojame Groupby koncepciją. Groupby daugiausia reiškia procesą, apimantį vieną ar kelis iš šių žingsnių:

  • Padalijimas: Tai procesas, kurio metu mes suskirstome duomenis į grupes, taikydami tam tikras sąlygas duomenų rinkiniams.
  • Taikymas: Tai procesas, kurio metu kiekvienai grupei pritaikome funkciją atskirai.
  • Derinant: Tai procesas, kurio metu sujungiame skirtingus duomenų rinkinius pritaikę groupby ir rezultatus į duomenų struktūrą.

Šis paveikslėlis padės suprasti Groupby koncepcijos procesą.

1. Sugrupuokite unikalias reikšmes iš stulpelio Komanda

Pandas Groupby metodas

2. Dabar kiekvienai grupei yra skirtas kibiras

3. Sumeskite kitus duomenis į kibirus

Pandas GroupBy

4. Taikykite funkciją kiekvieno kibiro svorio stulpelyje.

Funkcijos taikymas kiekvieno stulpelio svorio stulpelyje

Python Pandas GroupBy

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) print('Original Dataframe') display(df) # applying groupby() function to # group the data on Name value. gk = df.groupby('Name') # Let's print the first entries # in all the groups formed. print('After Creating Groups') gk.first() 

Išvestis:

pandos groupby

pandos groupby

Funkcijos taikymas grupei:

Suskaidę duomenis į grupę, kiekvienai grupei pritaikome funkciją, kad galėtume atlikti tam tikras operacijas, kurios yra:

  • Apibendrinimas: Tai procesas, kurio metu apskaičiuojame suvestinę statistiką (arba statistiką) apie kiekvieną grupę. Pavyzdžiui, apskaičiuokite grupės sumas arba vidurkius
  • Transformacija: Tai procesas, kurio metu atliekame tam tikrus grupei būdingus skaičiavimus ir pateikiame panašų indeksą. Pavyzdžiui, NA užpildymas grupėse su kiekvienos grupės verte
  • Filtravimas: Tai procesas, kurio metu kai kurias grupes atmetame pagal grupės skaičiavimą, įvertinantį teisingą arba klaidingą. Pavyzdžiui, duomenų filtravimas pagal grupės sumą arba vidurkį

Pandų agregacija

Sujungimas yra procesas, kurio metu apskaičiuojame suvestinę statistiką apie kiekvieną grupę. Apibendrinta funkcija kiekvienai grupei pateikia vieną apibendrintą reikšmę. Suskaidžius duomenis į grupes naudojant groupby funkciją, sugrupuotais duomenimis galima atlikti keletą agregavimo operacijų.

Python Pandas agregacija

Python3
# importing pandas module import pandas as pd # importing numpy as np import numpy as np # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # performing aggregation using # aggregate method grp1 = df.groupby('Name') grp1.aggregate(np.sum) 

Išvestis:

Sumos agregato funkcijos naudojimas duomenų rinkinyje

Sumos agregato funkcijos naudojimas duomenų rinkinyje

DataFrame sujungimas

Siekdami sujungti duomenų rėmelį, naudojame concat () funkcija, kuri padeda sujungti duomenų rėmelį. Ši funkcija atlieka visas sudėtingas sujungimo operacijas kartu su Pandos objektų ašimi, o kitose ašyse atlieka pasirenkamą indeksų (jei yra) rinkinio logiką (sąjungą arba susikirtimą).

Python Pandas Concatenate Dataframe

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # combining series and dataframe res = pd.concat([df, df1], axis=1) res 

Išvestis:

DataFrame sujungimas

Kai reikia sujungti labai didelius duomenų rėmelius, sujungimai yra galingas būdas greitai atlikti šias operacijas. Vienu metu galima sujungti tik dviejuose duomenų rėmeliuose, pažymėtuose kaip kairioji ir dešinė lentelė. Raktas yra bendras stulpelis, kuriame bus sujungti du duomenų rėmeliai. Norint išvengti netyčinio eilučių verčių dubliavimo, rekomenduojama naudoti raktus, kurių stulpelyje yra unikalios reikšmės. Pandos atlieka vieną funkciją, sujungti () , kaip įėjimo taškas visoms standartinėms duomenų bazės prisijungimo operacijoms tarp DataFrame objektų.

Yra keturi pagrindiniai sujungimo tvarkymo būdai (vidinis, kairysis, dešinysis ir išorinis), atsižvelgiant į tai, kuriose eilutėse turi būti saugomi duomenys.

Sujungti Daframe Python Pandas

Python Pandas Merge Dataframe

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # using .merge() function res = pd.merge(df, df1, on='key') res 

Išvestis:

Sujungiami du duomenų rinkiniai

Sujungiami du duomenų rinkiniai

Prisijungimas prie DataFrame

Norėdami prisijungti prie duomenų rėmo, naudojame .join() Ši funkcija naudojama dviejų galimai skirtingai indeksuotų duomenų rėmelių stulpeliams sujungti į vieną rezultatą DataFrame.

Python Pandos Prisijunkite prie duomenų rėmo

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32]} # Define a dictionary containing employee data data2 = {'Address':['Allahabad', 'Kannuaj', 'Allahabad', 'Kannuaj'], 'Qualification':['MCA', 'Phd', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1,index=['K0', 'K1', 'K2', 'K3']) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2, index=['K0', 'K2', 'K3', 'K4']) display(df, df1) # joining dataframe res = df.join(df1) res 

Išvestis:

Dviejų duomenų rinkinių sujungimas

Daugiau informacijos rasite mūsų Pandų sujungimas, sujungimas ir sujungimas pamoka

Išsamų vadovą apie Pandas rasite mūsų Pandos pamoka .

Vizualizacija su Matplotlib

„Matplotlib“ paprasta naudoti ir nuostabi „Python“ vizualizavimo biblioteka. Jis sukurtas naudojant „NumPy“ masyvus ir skirtas dirbti su platesniu „SciPy“ krūvu ir susideda iš kelių diagramų, tokių kaip linija, juosta, sklaida, histograma ir kt.

Pyplot

Pyplot yra „Matplotlib“ modulis, suteikiantis į MATLAB panašią sąsają. Pyplot suteikia funkcijas, kurios sąveikauja su figūra, ty sukuria figūrą, papuošia siužetą etiketėmis ir sukuria brėžinio plotą figūroje.

Python3
# Python program to show pyplot module import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.axis([0, 6, 0, 20]) plt.show() 

Išvestis:

Juostinė diagrama

A baro sklypas arba juostinė diagrama yra diagrama, vaizduojanti duomenų kategoriją su stačiakampėmis juostomis, kurių ilgis ir aukštis yra proporcingi jų pateiktoms reikšmėms. Juostos diagramos gali būti braižomos horizontaliai arba vertikaliai. Juostinė diagrama apibūdina atskirų kategorijų palyginimus. Jį galima sukurti naudojant bar() metodą.

Python Matplotlib juostinė diagrama

Čia naudosime tik rainelės duomenų rinkinį

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') # This will plot a simple bar chart plt.bar(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Iris Dataset') # Adding the legends plt.legend(['bar']) plt.show() 

Išvestis:

Juostinė diagrama naudojant matplotlib biblioteką

Juostinė diagrama naudojant matplotlib biblioteką

Histogramos

A histograma iš esmės naudojamas duomenims pateikti kai kurių grupių pavidalu. Tai yra stulpelio diagramos tipas, kai X ašis reiškia bin diapazonus, o Y ašis pateikia informaciją apie dažnį. Norint sukurti histogramą, pirmiausia reikia sukurti diapazonų dėžę, tada paskirstyti visą reikšmių diapazoną į intervalų seriją ir suskaičiuoti reikšmes, kurios patenka į kiekvieną intervalą. Dėžės aiškiai identifikuojamos kaip nuoseklūs, nesutampantys kintamųjų intervalai. The istorija () funkcija naudojama x histogramai apskaičiuoti ir sukurti.

Python Matplotlib histograma

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.hist(df['SepalLengthCm']) # Title to the plot plt.title('Histogram') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

Išvestis:

Histplot naudojant matplotlib biblioteką

Sklaidos brėžinys

Sklaidos diagramos yra naudojamos stebėti ryšį tarp kintamųjų ir naudoja taškus, kad pavaizduotų ryšį tarp jų. The išsklaidyti () Matplotlib bibliotekos metodas naudojamas sklaidos diagramai nubraižyti.

Python Matplotlib sklaidos diagrama

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.scatter(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Scatter Plot') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

Išvestis:

Sklaidos diagrama naudojant matplotlib biblioteką

Sklaidos diagrama naudojant matplotlib biblioteką

Dėžės sklypas

A boxplot ,Koreliacija taip pat žinoma kaip dėžutės ir ūsų brėžinys. Tai labai geras vaizdinis vaizdas, kai reikia išmatuoti duomenų paskirstymą. Aiškiai nubraižo vidutines vertes, nuokrypius ir kvartilius. Duomenų paskirstymo supratimas yra dar vienas svarbus veiksnys, leidžiantis geriau kurti modelį. Jei duomenys turi nukrypimų, rekomenduojamas būdas juos identifikuoti ir imtis reikiamų veiksmų. Dėžutės ir ūsų diagrama rodo, kaip paskirstomi duomenys. Į diagramą paprastai įtraukiamos penkios informacijos

  • Minimalus skaičius rodomas kairėje diagramos pusėje, kairiojo „ūsų“ pabaigoje
  • Pirmasis kvartilis, Q1, yra kairėje dėžutės pusėje (kairysis ūsai)
  • Mediana rodoma kaip linija langelio centre
  • Trečiasis kvartilis, Q3, rodomas dešinėje dėžutės pusėje (dešinysis ūsai)
  • Maksimalus skaičius yra dešinėje dėžutės pusėje

Dėžutės sklypo vaizdavimas

Tarpkvartilių diapazonas

Tarpkvartilių diapazonas

Iliustruojantis dėžutės siužetą

Iliustruojantis dėžutės siužetą

Python Matplotlib Box Plot

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.boxplot(df['SepalWidthCm']) # Title to the plot plt.title('Box Plot') # Adding the legends plt.legend(['SepalWidthCm']) plt.show() 

Išvestis:

Boxplot naudojant matplotlib biblioteką

Boxplot naudojant matplotlib biblioteką

Koreliacijos šilumos žemėlapiai

2-D šilumos žemėlapis yra duomenų vizualizacijos įrankis, padedantis spalvomis pavaizduoti reiškinio mastą. Koreliacijos šilumos žemėlapis yra šilumos žemėlapis, rodantis 2D koreliacijos matricą tarp dviejų atskirų matmenų, naudojant spalvotas ląsteles duomenims iš dažniausiai monochromatinės skalės pavaizduoti. Pirmojo aspekto reikšmės rodomos kaip lentelės eilutės, o antrojo aspekto reikšmės yra stulpelis. Ląstelės spalva yra proporcinga matavimų, atitinkančių matmenų vertę, skaičiui. Dėl to koreliacijos šilumos žemėlapiai idealiai tinka duomenų analizei, nes tai leidžia lengvai nuskaityti modelius ir pabrėžia tų pačių duomenų skirtumus ir skirtumus. Koreliacijos šilumos schemą, kaip ir įprastą šilumos schemą, padeda spalvų juosta, todėl duomenys yra lengvai skaitomi ir suprantami.

Pastaba: Čia pateikti duomenys turi būti perduoti naudojant corr() metodą, kad būtų sukurtas koreliacijos šilumos žemėlapis. Be to, pati corr () pašalina stulpelius, kurie bus nenaudingi generuojant koreliacijos šilumos žemėlapį, ir pasirenka tuos, kuriuos galima naudoti.

Python Matplotlib koreliacijos šilumos žemėlapis

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.imshow(df.corr() , cmap = 'autumn' , interpolation = 'nearest' ) plt.title('Heat Map') plt.show() 

Išvestis:

Šilumos žemėlapis naudojant matplotlib biblioteką

Šilumos žemėlapis naudojant matplotlib biblioteką

Norėdami gauti daugiau informacijos apie duomenų vizualizavimą, žr. toliau pateiktus vadovėlius –

Top Straipsniai

Kategorija

Įdomios Straipsniai