Analiza podataka i vizualizacija s Pythonom
Python se naširoko koristi kao jezik za analizu podataka zbog svojih robusnih biblioteka i alata za upravljanje podacima. Među ovim bibliotekama je Pandas koja olakšava manipulaciju i analizu istraživanja podataka. koristit ćemo se Pande za analizu skupa podataka tzv Country-data.csv od Kagglea. Tijekom rada s ovim podacima također uvodimo neke važne koncepte u Pandas.
1. Instalacija
Najlakši način da instalirate pande je da koristite pip:
Python pip install pandas
ili ga preuzmite s ovdje .
2. Stvaranje DataFramea u Pandas
A DataFrame je struktura podataka slična tablici u Pandasu koja ima podatke pohranjene u redovima i stupcima. DataFrame se može stvoriti prosljeđivanjem više objekata serije python u DataFrame razred ( pd.DataFrame() ) pomoću pd.Series metoda. U ovom primjeru koriste se dva objekta serije: s1 kao prvi red i s2 kao drugi red.
Primjer 1: Stvaranje DataFramea iz serije:
Python
import pandas as pd # Creating two Series: s1 (numbers) and s2 (names) s1 = pd . Series ([ 1 2 ]) s2 = pd . Series ([ 'Ashish' 'Sid' ]) # Creating DataFrame by combining Series as rows dataframe = pd . DataFrame ([ s1 s2 ]) # Displaying the DataFrame print ( dataframe )
Izlaz:
Primjer 2: DataFrame s popisa s prilagođenim indeksom i nazivima stupaca:
Python dataframe1 = pd . DataFrame ([[ 1 2 ] [ 'Ashish' 'Sid' ]] index = [ 'r1' 'r2' ] columns = [ 'c1' 'c2' ]) print ( dataframe1 )
Izlaz:
Primjer 3: DataFrame iz rječnika:
Python dataframe2 = pd . DataFrame ({ 'c1' : [ 1 'Ashish' ] 'c2' : [ 2 'Sid' ] }) print ( dataframe2 )
Izlaz:
3. Uvoz podataka s Pandas
Prvi korak je čitanje podataka. U našem slučaju podaci su pohranjeni kao CSV (Comma-Separated Values) datoteka gdje je svaki red odvojen novim retkom, a svaki stupac zarezom. Da bi mogli raditi s podacima u Pythonu potrebno je čitati csv datoteka u Pandas DataFrame.
Python import pandas as pd # Read Country-data.csv into a DataFrame df = pd . read_csv ( 'Country-data.csv' ) # Prints the first 5 rows of a DataFrame as default df . head () # Prints no. of rows and columns of a DataFrame df . shape
Izlaz:
(167 10)4. Indeksiranje DataFramesa s Pandama
Pandas pruža moćne mogućnosti indeksiranja. Možete indeksirati DataFrames koristeći oboje na temelju položaja i na temelju etikete metode.
Indeksiranje na temelju položaja (upotrebom
Pythoniloc):# prints first 5 rows and every column which replicates df.head() df . iloc [ 0 : 5 :] # prints entire rows and columns df . iloc [::] # prints from 5th rows and first 5 columns df . iloc [ 5 :: 5 ]Izlaz:
![]()
![]()
![]()
Indeksiranje na temelju oznaka (upotrebom
loc):Indeksiranjem se može raditi s oznakama pomoću pande.DataFrame.loc metoda koja omogućuje indeksiranje korištenjem oznaka umjesto pozicija.
Primjeri:
Python# prints first five rows including 5th index and every columns of df df . loc [ 0 : 5 :] # prints from 5th rows onwards and entire columns df . loc [ 5 ::]Izlaz:
![]()
![]()
Gore navedeno zapravo ne izgleda puno drugačije od df.iloc[0:5:]. To je zato što dok oznake redaka mogu poprimiti bilo koje vrijednosti, naše oznake redaka točno odgovaraju pozicijama. Ali oznake stupaca mogu znatno olakšati rad s podacima.Primjer:
Python# Prints the first 5 rows of Time period # value df . loc [: 5 'child_mort' ]Izlaz:
![]()
5. DataFrame Math s Pandas
Pandas olakšava izvođenje matematičkih operacija na podacima pohranjenim u podatkovnim okvirima. Operacije koje se mogu izvesti na pandama su vektorizirane što znači da su brze i automatski se primjenjuju na sve elemente bez upotrebe petlji.
Primjer - Matematika po stupcima:
Python# Adding 5 to every element in column A df [ 'child_mort' ] = df [ 'child_mort' ] + 5 # Multiplying values in column B by 10 df [ 'exports' ] = df [ 'exports' ] * 10 dfIzlaz:
![]()
Statističke funkcije u Pandama:
Izračun podatkovnih okvira može se izvršiti korištenjem statističkih funkcija pandas alata. Možemo koristiti funkcije poput:
-
df.sum()→ zbroj vrijednosti -
df.mean()→ prosjek -
df.max()/df.min()→ max i min vrijednosti -
df.describe()→ brzi sažetak statistike
# computes various summary statistics excluding NaN values df . describe () # Provides sum of all the values for each column df . sum ()
Izlaz:
6. Vizualizacija podataka s Pandas i Matplotlib
Pandas je vrlo jednostavan za korištenje Matplotlib moćna biblioteka koja se koristi za stvaranje osnovnih dijagrama i dijagrama. Sa samo nekoliko redaka koda možemo vizualizirati svoje podatke i bolje ih razumjeti. Ispod je nekoliko jednostavnih primjera koji će vam pomoći da počnete s crtanjem koristeći Pandas i Matplotlib:
Python # Import the library first import matplotlib.pyplot as plt
Histogram
Histogram pokazuje distribuciju vrijednosti u stupcu.
Python df [ 'income' ] . hist ( bins = 10 ) plt . title ( 'Histogram of Income' ) plt . xlabel ( 'Income Value' ) plt . ylabel ( 'Frequency' ) plt . show ()
Izlaz:
Box Plot
A okvirna parcela koristan je za otkrivanje odstupanja i razumijevanje širenja podataka.
Python df = df . head ( 10 ) plt . figure ( figsize = ( 20 6 )) # Increase width to make x-axis labels clearer df . boxplot ( column = 'imports' by = 'country' ) plt . title ( 'Boxplot by Country' ) plt . suptitle ( '' ) # Removes default title plt . xlabel ( 'Country' ) plt . ylabel ( 'Imports' ) plt . xticks ( rotation = 45 ) # Optional: Rotate x-axis labels for better visibility plt . tight_layout () # Adjust layout to avoid clipping plt . show ()
Izlaz:
Dijagram raspršenosti
A dijagram raspršenosti pokazuje odnos između dvije varijable.
Python x = df [ 'health' ] y = df [ 'life_expec' ] plt . scatter ( x y label = 'Data Points' color = 'm' marker = '*' s = 30 ) plt . xlabel ( 'Health' ) plt . ylabel ( 'Life Expectancy' ) plt . title ( 'Scatter Plot of Health vs Life Expectancy' ) plt . legend () plt . show ()
Izlaz:
Povezani članak:
- Pande Uvod
- Iscrtavanje grafikona u Pythonu
- Rad s csv datotekama u Pythonu
- Pandas DataFrame
- Uvod u Matplotlib
- Histogram - Grafikon tipova definicija i primjeri
- Box Plot
- Dijagram raspršenosti