Dataanalyse og visualisering med Python
Python bruges i vid udstrækning som et dataanalysesprog på grund af dets robuste biblioteker og værktøjer til administration af data. Blandt disse biblioteker er Pandas, som gør dataudforskning manipulation og analyse lettere. vi vil bruge Pandaer at analysere et datasæt kaldet Country-data.csv fra Kaggle. Mens vi arbejder med disse data, introducerer vi også nogle vigtige begreber i Pandas.
1. Installation
Den nemmeste måde at installere pandaer på er at bruge pip:
Python pip install pandas
eller download det fra her .
2. Oprettelse af en dataramme i Pandas
EN DataFrame er en tabellignende datastruktur i Pandas, som har data gemt i rækker og kolonner. En DataFrame kan oprettes ved at sende flere objekter i python-serien ind i DataFrame klasse ( pd.DataFrame() ) ved hjælp af pd.Series metode. I dette eksempel bruges to serieobjekter: s1 som første række og s2 som anden række.
Eksempel 1: Oprettelse af DataFrame fra serier:
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 )
Produktion:
Eksempel 2: DataFrame fra en liste med brugerdefineret indeks og kolonnenavne:
Python dataframe1 = pd . DataFrame ([[ 1 2 ] [ 'Ashish' 'Sid' ]] index = [ 'r1' 'r2' ] columns = [ 'c1' 'c2' ]) print ( dataframe1 )
Produktion:
Eksempel 3: DataFrame fra en ordbog:
Python dataframe2 = pd . DataFrame ({ 'c1' : [ 1 'Ashish' ] 'c2' : [ 2 'Sid' ] }) print ( dataframe2 )
Produktion:
3. Import af data med pandaer
Det første skridt er at læse dataene. I vores tilfælde lagres dataene som en CSV-fil (Comma-Separated Values), hvor hver række er adskilt af en ny linje og hver kolonne med et komma. For at kunne arbejde med dataene i Python er det nødvendigt at læse csv fil ind i en 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
Produktion:
(167 10)4. Indeksering af datarammer med pandaer
Pandas giver kraftfulde indekseringsfunktioner. Du kan indeksere DataFrames ved hjælp af begge positionsbaseret og etiket-baseret metoder.
Positionsbaseret indeksering (ved hjælp af
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 ]Produktion:
![]()
![]()
![]()
Etiketbaseret indeksering (ved hjælp af
loc):Indeksering kan arbejdes med etiketter ved hjælp af pandas.DataFrame.loc metode, som gør det muligt at indeksere ved hjælp af etiketter i stedet for positioner.
Eksempler:
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 ::]Produktion:
![]()
![]()
Ovenstående ser faktisk ikke meget anderledes ud end df.iloc[0:5:]. Dette skyldes, at mens rækkeetiketter kan antage alle værdier, svarer vores rækkeetiketter nøjagtigt til positionerne. Men kolonneetiketter kan gøre tingene meget nemmere, når du arbejder med data.Eksempel:
Python# Prints the first 5 rows of Time period # value df . loc [: 5 'child_mort' ]Produktion:
![]()
5. DataFrame Math med pandaer
Pandas gør det nemmere at udføre matematiske operationer på de data, der er gemt i datarammer. De operationer, der kan udføres på pandaer, er vektoriseret, hvilket betyder, at de er hurtige og gælder automatisk for alle elementer uden brug af loops.
Eksempel - kolonnemæssig matematik:
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 dfProduktion:
![]()
Statistiske funktioner i pandaer:
Beregning af datarammer kan udføres ved hjælp af statistiske funktioner i pandas-værktøjer. Vi kan bruge funktioner som:
-
df.sum()→ sum af værdier -
df.mean()→ gennemsnit -
df.max()/df.min()→ max og min værdier -
df.describe()→ hurtig statistikoversigt
# computes various summary statistics excluding NaN values df . describe () # Provides sum of all the values for each column df . sum ()
Produktion:
6. Datavisualisering med Pandas og Matplotlib
Pandaer er meget nemme at bruge med Matplotlib et kraftfuldt bibliotek, der bruges til at skabe grundlæggende plots og diagrammer. Med kun få linjer kode kan vi visualisere vores data og forstå dem bedre. Nedenfor er nogle enkle eksempler til at hjælpe dig i gang med at plotte ved hjælp af Pandas og Matplotlib:
Python # Import the library first import matplotlib.pyplot as plt
Histogram
Et histogram viser fordelingen af værdier i en kolonne.
Python df [ 'income' ] . hist ( bins = 10 ) plt . title ( 'Histogram of Income' ) plt . xlabel ( 'Income Value' ) plt . ylabel ( 'Frequency' ) plt . show ()
Produktion:
Box Plot
EN kasse plot er nyttig til at opdage outliers og forstå dataspredning.
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 ()
Produktion:
Scatter Plot
EN scatter plot viser sammenhængen mellem to variable.
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 ()
Produktion:
Relateret artikel:
- Pandas introduktion
- Grafplotning i Python
- Arbejder med csv-filer i Python
- Pandas DataFrame
- Introduktion til Matplotlib
- Histogram - Definitionstyper Graf og eksempler
- Box Plot
- Scatter Plot