Анализ на данни и визуализация с Python
Python е широко използван като език за анализ на данни поради своите стабилни библиотеки и инструменти за управление на данни. Сред тези библиотеки е Pandas, която улеснява манипулирането и анализата на проучване на данни. ще използваме панди за анализиране на набор от данни, наречен Country-data.csv от Kaggle. Докато работим с тези данни, ние също въвеждаме някои важни концепции в Pandas.
1. Монтаж
Най-лесният начин да инсталирате pandas е да използвате pip:
Python pip install pandas
или го изтеглете от тук .
2. Създаване на DataFrame в Pandas
А DataFrame е подобна на таблица структура от данни в Pandas, която има данни, съхранявани в редове и колони. DataFrame може да бъде създаден чрез предаване на множество обекти от серията python в DataFrame клас ( pd.DataFrame() ) с помощта на pd.Series метод. В този пример се използват два обекта Series: s1 като първи ред и s2 като втория ред.
Пример 1: Създаване на DataFrame от серия:
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 )
Изход:
Пример 2: DataFrame от списък с потребителски индекс и имена на колони:
Python dataframe1 = pd . DataFrame ([[ 1 2 ] [ 'Ashish' 'Sid' ]] index = [ 'r1' 'r2' ] columns = [ 'c1' 'c2' ]) print ( dataframe1 )
Изход:
Пример 3: DataFrame от речник:
Python dataframe2 = pd . DataFrame ({ 'c1' : [ 1 'Ashish' ] 'c2' : [ 2 'Sid' ] }) print ( dataframe2 )
Изход:
3. Импортиране на данни с Pandas
Първата стъпка е да прочетете данните. В нашия случай данните се съхраняват като CSV (Comma-Separated Values) файл, където всеки ред е разделен с нов ред, а всяка колона със запетая. За да можете да работите с данните в Python е необходимо да прочетете csv файл в 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
Изход:
(167 10)4. Индексиране на DataFrames с Pandas
Pandas предоставя мощни възможности за индексиране. Можете да индексирате DataFrames, като използвате и двете базирани на позиция и базирани на етикети методи.
Индексиране на базата на позиция (с помощта на
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 ]Изход:
![]()
![]()
![]()
Индексиране на базата на етикети (използване
loc):Индексирането може да се работи с етикети с помощта на pandas.DataFrame.loc метод, който позволява индексиране с помощта на етикети вместо позиции.
Примери:
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 ::]Изход:
![]()
![]()
Горното всъщност не изглежда много по-различно от df.iloc[0:5:]. Това е така, защото докато етикетите на редове могат да приемат всякакви стойности, нашите етикети на редове съвпадат точно с позициите. Но етикетите на колоните могат да направят нещата много по-лесни при работа с данни.Пример:
Python# Prints the first 5 rows of Time period # value df . loc [: 5 'child_mort' ]Изход:
![]()
5. DataFrame Math с Pandas
Pandas улеснява извършването на математически операции върху данните, съхранявани в рамки с данни. Операциите, които могат да се извършват върху панди, са векторизирани, което означава, че са бързи и се прилагат автоматично към всички елементи, без да се използват цикли.
Пример - Математика по колони:
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 dfИзход:
![]()
Статистически функции в Pandas:
Изчисляването на рамки с данни може да се извърши с помощта на статистически функции на инструментите на pandas. Можем да използваме функции като:
-
df.sum()→ сума от стойности -
df.mean()→ средно -
df.max()/df.min()→ макс. и мин. стойности -
df.describe()→ бърза обобщена статистика
# computes various summary statistics excluding NaN values df . describe () # Provides sum of all the values for each column df . sum ()
Изход:
6. Визуализация на данни с Pandas и Matplotlib
Pandas е много лесен за използване Matplotlib мощна библиотека, използвана за създаване на основни графики и диаграми. Само с няколко реда код можем да визуализираме нашите данни и да ги разберем по-добре. По-долу са дадени няколко прости примера, които да ви помогнат да започнете да чертаете с помощта на Pandas и Matplotlib:
Python # Import the library first import matplotlib.pyplot as plt
Хистограма
Хистограма показва разпределението на стойностите в колона.
Python df [ 'income' ] . hist ( bins = 10 ) plt . title ( 'Histogram of Income' ) plt . xlabel ( 'Income Value' ) plt . ylabel ( 'Frequency' ) plt . show ()
Изход:
Box Plot
А кутия парцел е полезно за откриване на отклонения и разбиране на разпространението на данните.
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 ()
Изход:
Точкова диаграма
А точкова диаграма показва връзката между две променливи.
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 ()
Изход:
Свързана статия:
- Pandas Въведение
- Изчертаване на графики в Python
- Работа с csv файлове в Python
- Pandas DataFrame
- Въведение в Matplotlib
- Хистограма - Типове дефиниции Графика и примери
- Box Plot
- Точкова диаграма