Gegevenswetenschap - Gegevensvoorbereiding
Voordat gegevens worden geanalyseerd, moet een datawetenschapper de gegevens extraheren en schoon en waardevol maken.
Gegevens extraheren en lezen met Panda's
Voordat gegevens kunnen worden geanalyseerd, moeten deze worden geïmporteerd/geëxtraheerd.
In het onderstaande voorbeeld laten we u zien hoe u gegevens importeert met Panda's in Python.
We gebruiken de read_csv()
functie om een CSV-bestand met de gezondheidsgegevens te importeren:
Voorbeeld
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
Voorbeeld uitgelegd
- Importeer de Panda's-bibliotheek
- Noem het dataframe als
health_data
. header=0
betekent dat de headers voor de variabelenamen in de eerste rij staan (merk op dat 0 de eerste rij in Python betekent)sep=","
betekent dat "," wordt gebruikt als scheidingsteken tussen de waarden. Dit komt omdat we het bestandstype .csv gebruiken (door komma's gescheiden waarden)
Tip: Als je een groot CSV-bestand hebt, kun je de
head()
functie gebruiken om alleen de bovenste 5 rijen weer te geven:
Voorbeeld
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
Gegevens opschonen
Bekijk de geïmporteerde gegevens. Zoals u kunt zien, zijn de gegevens "vuil" met foutieve of niet-geregistreerde waarden:
- Er zijn enkele lege velden
- Gemiddelde puls van 9 000 is niet mogelijk
- 9 000 wordt als niet-numeriek behandeld vanwege het spatiescheidingsteken
- Eén waarneming van de maximale puls wordt aangeduid als "AF", wat niet logisch is
We moeten de gegevens dus opschonen om de analyse uit te voeren.
Lege rijen verwijderen
We zien dat de niet-numerieke waarden (9 000 en AF) in dezelfde rijen staan met ontbrekende waarden.
Oplossing: we kunnen de rijen met ontbrekende waarnemingen verwijderen om dit probleem op te lossen.
Wanneer we een dataset laden met Panda's, worden alle lege cellen automatisch geconverteerd naar "NaN" -waarden.
Dus het verwijderen van de NaN-cellen geeft ons een schone dataset die kan worden geanalyseerd.
We kunnen de dropna()
functie gebruiken om de NaN's te verwijderen. axis=0 betekent dat we alle rijen met een NaN-waarde willen verwijderen:
Voorbeeld
health_data.dropna(axis=0,inplace=True)
print(health_data)
Het resultaat is een dataset zonder NaN-rijen:
Gegevenscategorieën
Om gegevens te analyseren, moeten we ook weten met welke soorten gegevens we te maken hebben.
Gegevens kunnen worden onderverdeeld in drie hoofdcategorieën:
- Numeriek - Bevat numerieke waarden. Kan worden onderverdeeld in twee categorieën:
- Discreet: getallen worden als "geheel" geteld. Voorbeeld: u kunt geen 2,5 sessies hebben getraind, het is 2 of 3
- Continu: getallen kunnen oneindig nauwkeurig zijn. U kunt bijvoorbeeld 7 uur, 30 minuten en 20 seconden slapen, of 7.533 uur
- Categorisch - Bevat waarden die niet tegen elkaar kunnen worden gemeten. Voorbeeld: Een kleur of een soort training
- Ordinaal - Bevat categorische gegevens die tegen elkaar kunnen worden afgemeten. Voorbeeld: Schoolcijfers waar A beter is dan B enzovoort
Door het type gegevens te kennen, weet u welke techniek u moet gebruiken bij het analyseren ervan.
Gegevenstypen
We kunnen de info()
functie gebruiken om de gegevenstypen binnen onze dataset weer te geven:
Voorbeeld
print(health_data.info())
Resultaat:
We zien dat deze dataset twee verschillende soorten data heeft:
- Float64
- Object
We kunnen hier geen objecten gebruiken om te berekenen en analyses uit te voeren. We moeten het type object converteren naar float64 (float64 is een getal met een decimaalteken in Python).
We kunnen de astype()
functie gebruiken om de gegevens om te zetten in float64.
In het volgende voorbeeld worden "Average_Pulse" en "Max_Pulse" geconverteerd naar het gegevenstype float64 (de andere variabelen zijn al van het gegevenstype float64):
Voorbeeld
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
Resultaat:
Nu heeft de dataset alleen float64-gegevenstypen.
Analyseer de gegevens
Wanneer we de dataset hebben opgeschoond, kunnen we beginnen met het analyseren van de data.
We kunnen de describe()
functie in Python gebruiken om gegevens samen te vatten:
Voorbeeld
print(health_data.describe())
Resultaat:
Looptijd | Gemiddelde_Puls | Max_Pulse | Calorie_Burnage | Uren_Werk | Uren_Slaap | |
---|---|---|---|---|---|---|
Graaf | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
Gemeen | 51.0 | 102.5 | 137,0 | 285.0 | 6.6 | 7,5 |
Soa | 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 |
- Tellen - Telt het aantal waarnemingen
- Gemiddelde - De gemiddelde waarde
- Std - Standaarddeviatie (uitgelegd in het hoofdstuk statistieken)
- Min - De laagste waarde
- 25% , 50% en 75% zijn percentielen (uitgelegd in het hoofdstuk statistiek)
- Max - De hoogste waarde