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=0znamená, ž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:

Špinavá data
  • 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:

Vyčištěná data

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í:

  1. 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
  2. Kategorický – Obsahuje hodnoty, které nelze vzájemně měřit. Příklad: Barva nebo typ tréninku
  3. 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:

Datový typ float a objekt

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:

Datový typ float

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