Data Science - Příprava dat
Před analýzou dat musí data Scientist extrahovat data a zajistit, aby byla čistá a hodnotná.
Extrahujte a čtěte data pomocí pand
Než lze data analyzovat, je nutné je importovat/extrahovat.
V níže uvedeném příkladu vám ukážeme, jak importovat data pomocí Pandas v Pythonu.
Tuto funkci používáme read_csv()
k importu souboru CSV se zdravotními údaji:
Příklad
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
Příklad vysvětlen
- Importujte knihovnu Pandas
- Pojmenujte datový rámec jako
health_data
. header=0
znamená, že záhlaví pro názvy proměnných se nacházejí v prvním řádku (všimněte si, že 0 znamená první řádek v Pythonu)sep=","
znamená, že "," se používá jako oddělovač mezi hodnotami. Je to proto, že používáme typ souboru .csv (hodnoty oddělené čárkami)
Tip: Pokud máte velký soubor CSV, můžete pomocí
head()
funkce zobrazit pouze prvních 5 řádků:
Příklad
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
Čištění dat
Podívejte se na importovaná data. Jak vidíte, data jsou „špinavá“ s nesprávně nebo neregistrovanými hodnotami:
- Jsou zde prázdná pole
- Průměrný pulz 9 000 není možný
- 9 000 bude považováno za nečíselné kvůli oddělovači mezer
- Jedno pozorování maximálního pulzu je označeno jako "AF", což nedává smysl
Abychom mohli provést analýzu, musíme data vyčistit.
Odebrat prázdné řádky
Vidíme, že nenumerické hodnoty (9 000 a AF) jsou ve stejných řádcích s chybějícími hodnotami.
Řešení: Tento problém můžeme odstranit odstraněním řádků s chybějícími pozorováními.
Když načteme soubor dat pomocí Pandas, všechny prázdné buňky se automaticky převedou na hodnoty „NaN“.
Takže odstranění NaN buněk nám poskytne čistý soubor dat, který lze analyzovat.
Můžeme použít dropna()
funkci k odstranění NaN. axis=0 znamená, že chceme odstranit všechny řádky, které mají hodnotu NaN:
Příklad
health_data.dropna(axis=0,inplace=True)
print(health_data)
Výsledkem je soubor dat bez řádků NaN:
Datové kategorie
K analýze dat také potřebujeme znát typy dat, se kterými máme co do činění.
Data lze rozdělit do tří hlavních kategorií:
- Numerický – obsahuje číselné hodnoty. Lze rozdělit do dvou kategorií:
- Diskrétní: Čísla se počítají jako „celé“. Příklad: Nemůžete mít odtrénováno 2,5 sezení, jsou to buď 2 nebo 3
- Spojité: Čísla mohou mít nekonečnou přesnost. Můžete například spát 7 hodin, 30 minut a 20 sekund nebo 7,533 hodin
- Kategorický – Obsahuje hodnoty, které nelze vzájemně měřit. Příklad: Barva nebo typ tréninku
- Ordinální – obsahuje kategorická data, která lze vzájemně měřit. Příklad: Známky ve škole, kde A je lepší než B a tak dále
Když budete znát typ svých dat, budete moci vědět, jakou techniku použít při jejich analýze.
Typy dat
Tuto funkci můžeme použít info()
k výpisu datových typů v rámci naší datové sady:
Příklad
print(health_data.info())
Výsledek:
Vidíme, že tato datová sada obsahuje dva různé typy dat:
- Float64
- Objekt
Zde nemůžeme používat objekty k výpočtu a provádění analýzy. Musíme převést objekt typu na float64 (float64 je v Pythonu číslo s desetinnou čárkou).
Pomocí astype()
funkce můžeme data převést na float64.
Následující příklad převede "Average_Pulse" a "Max_Pulse" na datový typ float64 (ostatní proměnné jsou již datového typu float64):
Příklad
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
Výsledek:
Nyní má datová sada pouze datové typy float64.
Analyzujte data
Když jsme vyčistili datovou sadu, můžeme začít analyzovat data.
describe()
K sumarizaci dat můžeme použít funkci v Pythonu:
Příklad
print(health_data.describe())
Výsledek:
Doba trvání | Průměrný_puls | Max_Pulse | Calorie_Burnage | Hodiny_Práce | Hodiny_Spánek | |
---|---|---|---|---|---|---|
Počet | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 |
Znamenat | 51,0 | 102,5 | 137,0 | 285,0 | 6.6 | 7.5 |
Std | 10,49 | 15.4 | 11:35 | 30.28 | 3.63 | 0,53 |
Min | 30,0 | 80,0 | 120,0 | 240,0 | 0,0 | 7,0 |
25 % | 45,0 | 91,25 | 130,0 | 262,5 | 7,0 | 7,0 |
50 % | 52,5 | 102,5 | 140,0 | 285,0 | 8.0 | 7.5 |
75 % | 60,0 | 113,75 | 145,0 | 307,5 | 8.0 | 8.0 |
Max | 60,0 | 125,0 | 150,0 | 330,0 | 10,0 | 8.0 |
- Count - Spočítá počet pozorování
- Mean - Průměrná hodnota
- Std - Směrodatná odchylka (vysvětleno v kapitole statistiky)
- Min - Nejnižší hodnota
- 25 % , 50 % a 75 % jsou percentily (vysvětleno v kapitole statistiky)
- Max - Nejvyšší hodnota