Gå till index

Introduktion till Data Science med Python

0% färdig
0/9 Steps
avsnitt 9 av 9
Pågår

Data wrangling i Python: att bearbeta och förbereda data för analys

Fredrik Svensson februari 24, 2020

Vad är data wrangling och varför är det viktigt att kunna i Python?

Att bearbeta data kallas data wranglingdata munging, data grunging eller data preparation i den engelska litteraturen. Syftet med att bearbeta data är att formatera informationen så att den kan analyseras. Detta moment är oerhört viktigt eftersom merparten av arbetstiden oftast spenderas för att bearbeta data. Inte sällan kan 90% (eller mer) av koden utgöras av moment som bearbetar data. Det är således oerhört viktigt att kunna detta på ett effektivt och robust sätt. Att selektera rader och kolumner är tveklöst två av de mest grundläggande uppgifterna. Att skapa nya variabler eller modifiera variabler är också essentiellt.

I Python finns alla nödvändiga funktioner för att bearbeta data. Tyvärr är dessa funktioner ofta krångliga att använda eller så resulterar de i kod som är svår att läsa. Utvecklare inom R’s community noterade detta tidigt och tog fram flera bibliotek som underlättade data wrangling. Tveklöst har dplyr varit det mest revolutionerande biblioteket, eftersom det introducerade ett helt nytt sätt att manipulera data. I dplyr står enkelheten i fokus; med ett fåtal funktioner, vilka är enkla att använda, möjliggörs kraftfull bearbetning av data. Pythons community observerade att dplyr blev mycket populärt och därför tog man fram motsvarande bibliotek till Python. Faktum är att inom kort publicerades minst 3 motsvarande bibliotek till Python: dfply,pandas-ply och plython. För att förstå betydelsen av dessa bibliotek tar vi ett exempel.

Vi fortsätter med vår data frame från föregående övningar. Börja med att läsa in filen:

# Importera pandas för att använda funktionen read_csv
import pandas as pd

# Använd funktionen read_csv för att läsa in en fil från Internet
df = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/rhc.csv")

I den filen finns en variabel som heter ca, vilket står för cancer. Denna variabel har tre nivåer: ”No”, ”Yes”, ”Metastatic”, vilket du kan undersöka genom att skriva:

df.ca.value_counts()

# Resultat
# No            4379
# Yes            972
# Metastatic     384

Vi vill nu beräkna medelvärdet av sadmedte för vardera av dessa tre grupper och vi vill göra det för män och kvinnor separat. Variabeln sex definierar män och kvinnor. Vi kommer göra detta med dfply, vilket kräver att vi installerar biblioteket först. För att göra detta öppnas Terminal på Mac OS eller Command Prompt i Windows (se Introduktion till Python). Skriv pip install dfply och tryck enter (se bild nedan).

Du får då ett meddelande om att biblioteket är installerat. Därefter aktiveras biblioteket i Spyder.

Detta görs genom att använda funktionen from följt av *, vilket aktiverar alla funktioner i biblioteket och vi slipper skriva dfply. framför varje funktion vi använder.

from dfply import *

Nu är dfply aktiverat och för att göra beräkningen skriver vi följande:

df >> group_by('ca', 'sex') >> summarize(medelvarde=X.sadmdte.mean())

# Resultat:
#       sex          ca    medelvarde
# 0  Female  Metastatic  11632.954774
# 1    Male  Metastatic  11645.335135
# 2  Female          No  11641.753720
# 3    Male          No  11627.035391
# 4  Female         Yes  11670.025316
# 5    Male         Yes  11655.783362

Observera att vi använder >> för att skapa en kedja av händelser. Koden börjar med df >> group_by('ca', 'sex') vilket tolkas som ”börja med df, sedan grupperar vi df på ca och därefter på sex”. Detta innebär att alla efterkommande funktioner kommer genomföras på subgrupper av ca och sex. Sedan fortsätter vi med summarize(medelvarde=X.sadmdte.mean(), vilket innebär att vi skapar en sammanställning; denna inbegriper en ny variabel, medelvarde, som är medelvärdet av sadmdte. Observera att vi använder X för att instruera Python att sadmdte kommer från samma data frame som funktionen börjar med (df).

Detta innebär att vi med en enda kodrad lyckats aggregera data på två variabler (ca, sex) och beräknat ett medelvärde för varje subgrupp i ca och sex. Det är således väldigt enkelt att bearbeta data i Python. I kommande kapitel kommer vi gå igenom de vanligaste och viktigaste metoderna för databearbetning. Vi kommer använda både inbyggda funktioner i Python samt dfply.

0/5 (0 Reviews)