Nauka o danych — przygotowanie danych


Przed analizą danych specjalista ds. danych musi wyodrębnić dane, aby były czyste i wartościowe.


Wyodrębnij i czytaj dane za pomocą pand

Zanim dane będą mogły być analizowane, muszą zostać zaimportowane/wyodrębnione.

W poniższym przykładzie pokazujemy, jak importować dane za pomocą Pand w Pythonie.

Używamy read_csv()funkcji do importu pliku CSV z danymi o stanie zdrowia:

Przykład

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)

Przykład wyjaśniony

  • Importuj bibliotekę Pandy
  • Nazwij ramkę danych jako health_data.
  • header=0 oznacza, że ​​nagłówki nazw zmiennych znajdują się w pierwszym wierszu (zauważ, że 0 oznacza pierwszy wiersz w Pythonie)
  • sep=","oznacza, że ​​"," jest używany jako separator między wartościami. Dzieje się tak, ponieważ używamy pliku typu .csv (wartości oddzielone przecinkami)

Wskazówka: jeśli masz duży plik CSV, możesz użyć tej head()funkcji, aby wyświetlić tylko 5 pierwszych wierszy:

Przykład

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())

Czyszczenie danych

Spójrz na zaimportowane dane. Jak widać, dane są „brudne” z błędnymi lub niezarejestrowanymi wartościami:

Brudne dane
  • Jest kilka pustych pól
  • Średni puls 9 000 nie jest możliwy
  • 9 000 będzie traktowane jako nieliczbowe ze względu na separator spacji
  • Jedna obserwacja maksymalnego tętna jest oznaczona jako „AF”, co nie ma sensu

Dlatego musimy wyczyścić dane, aby przeprowadzić analizę.


Usuń puste wiersze

Widzimy, że wartości nienumeryczne (9 000 i AF) znajdują się w tych samych wierszach z brakami danych.

Rozwiązanie: Możemy usunąć wiersze z brakującymi obserwacjami, aby rozwiązać ten problem.

Kiedy ładujemy zestaw danych za pomocą Pand, wszystkie puste komórki są automatycznie konwertowane na wartości „NaN”.

Tak więc usunięcie komórek NaN daje nam czysty zestaw danych, które można analizować.

Możemy użyć tej dropna()funkcji do usunięcia NaNs. oś=0 oznacza, że ​​chcemy usunąć wszystkie wiersze, które mają wartość NaN:

Przykład

health_data.dropna(axis=0,inplace=True)

print(health_data)

Wynikiem jest zestaw danych bez wierszy NaN:

Wyczyszczone dane

Kategorie danych

Aby analizować dane, musimy również znać rodzaje danych, z którymi mamy do czynienia.

Dane można podzielić na trzy główne kategorie:

  1. Numeryczna — zawiera wartości liczbowe. Można podzielić na dwie kategorie:
    • Dyskretny: Liczby są liczone jako „całe”. Przykład: Nie możesz mieć wytrenowanych 2,5 sesji, jest to 2 lub 3
    • Ciągłe: Liczby mogą mieć nieskończoną precyzję. Na przykład możesz spać przez 7 godzin, 30 minut i 20 sekund, czyli 7,533 godziny
  2. Kategoryczny — zawiera wartości, których nie można ze sobą zmierzyć. Przykład: kolor lub rodzaj treningu
  3. Porządkowe — zawiera dane kategoryczne, które można porównać ze sobą. Przykład: oceny szkolne, w których A jest lepsze niż B itd.

Znając rodzaj swoich danych, będziesz mógł wiedzieć, jakiej techniki użyć podczas ich analizy.


Typy danych

Możemy użyć info()funkcji, aby wyświetlić typy danych w naszym zbiorze danych: 

Przykład

print(health_data.info())

Wynik:

Typ danych float i obiekt

Widzimy, że ten zestaw danych zawiera dwa różne typy danych:

  • Pływak64
  • Obiekt

Nie możemy tutaj używać obiektów do obliczania i wykonywania analiz. Musimy przekonwertować obiekt typu na float64 (float64 to liczba z ułamkiem dziesiętnym w Pythonie).

Możemy użyć astype()funkcji do konwersji danych na float64.

Poniższy przykład konwertuje "Average_Pulse" i "Max_Pulse" na typ danych float64 (pozostałe zmienne mają już typ danych float64):

Przykład

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())

Wynik:

Typ danych zmiennoprzecinkowy

Teraz zestaw danych zawiera tylko typy danych typu float64.


Analizuj dane

Po wyczyszczeniu zestawu danych możemy przystąpić do analizy danych.

Możemy użyć describe()funkcji w Pythonie do podsumowania danych:

Przykład

print(health_data.describe())

Wynik:

  Czas trwania Średnia_impuls Max_Puls Kalorie_spalanie Godziny_Praca Godziny_Snu
Liczyć 10,0 10,0 10,0 10,0 10,0 10,0
Oznaczać 51,0 102,5 137,0 285,0 6,6 7,5
Standardowy 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
Maks. 60,0 125,0 150,0 330,0 10,0 8,0
  • Count — zlicza liczbę obserwacji
  • Średnia — średnia wartość
  • Std - Odchylenie standardowe (wyjaśnione w rozdziale Statystyki)
  • Min — najniższa wartość
  • 25% , 50% i 75% to percentyle (wyjaśnione w rozdziale statystyk)
  • Max — najwyższa wartość