Stora datatillgångar är röriga, särskilt när du måste hämta dem från webbplatser, servrar eller andra datakällor.
UI-baserade applikationer som MS Excel är bra för att hantera enkla datamängder, men kan kämpa när datan blir större. Detta är en bra anledning för dig att flytta till Python för att utföra mer komplexa databaserade operationer.
Pythons tredjepartsbibliotek, Pandas, hjälper dig att sortera dina befintliga datamängder snabbt. Om du vill sortera dina data i Python, tittar den här artikeln på några sätt att uppnå denna uppgift.
Förutsättningar för att använda Python för att sortera data
Innan du sorterar dina data i Python måste du ta hand om några förutsättningar:
- Ladda ner en Python IDE. Du kan använda en Python-kompatibel IDE, som Jupyter Notebook, PyCharm och Spyder, bland andra. Var och en av dessa är kompatibla med alla Python-versioner.
- Installera pandor. Du behöver pandaspaketet som du kan installera med PIP eller din föredragna metod.
- Exempeldatauppsättning. Ladda ner en exempeldatauppsättning för att öva på de listade koderna. Alternativt kan du använda dessa procedurer på dina exklusiva data.
Importera Pandas-biblioteket i Python
Pandas är ett Python-bibliotek från tredje part som du kan använda för att hantera Excel, CSV och andra dataformat.
För att arbeta med ett exempel på en Excel-fil, börja med att importera pandas-biblioteket. Efter det kommer du att använda importprocedur för att läsa Excel-data till Python.
För att importera biblioteket
importera pandor som pd
Skapa en ny dataram för att ladda Excel-data
fil = "Exempel - Superstore.xls"
df = pd.read_excel (fil)
df.huvud()
Var:
- df är ett DataFrame-objekt som lagrar importerad data.
- pd är ett alias för Pandas-biblioteket.
- read_excel är en metod för att läsa in Excel-filen i Python.
- fil är en sökväg till Excel-filen.
- huvud är en metod som returnerar de första fem raderna från DataFrame.
När ditt program har laddat data kan du använda de många tillgängliga DataFrame-metoderna för att sortera dem på olika sätt.
1. Sortering efter en enskild kolumn i en DataFrame
Eftersom din data kommer att ha många rader och kolumner, vill du ofta sortera data baserat på en specifik kolumn eller kolumner.
Python sorterar data i stigande ordning som standard. Om du vill ändra sorteringsordningen måste du uttryckligen nämna det i din kod.
Sortera efter en enda kolumn (stigande ordning)
df.sort_values (by = "Kundnummer")
Sortera efter en enda kolumn (fallande ordning)
Ställ in stigande parameter till Falsk för att sortera din kolumn i fallande ordning.
df.sort_values (by = "Kundnummer", stigande=False)
Var:
- df är ett DataFrame-objekt som innehåller data.
- sorteringsvärden är en metod för att sortera efter datavärden.
- förbi är en parameter för att definiera kolumnnamnet.
- stigande är en parameter för att definiera sorteringsordningen.
2. Sortera flera kolumner i en dataram
Om dina krav kräver det, kan du också sortera dina DataFrame(s) baserat på flera kolumner samtidigt. I ett sådant scenario måste du definiera kolumnreferenserna i en lista.
Sortera efter flera kolumner stigande
df.sort_values (by = ["Kundnummer", "Stad"])
Sortera efter flera kolumner fallande
Använd funktionen stigande = Falskt för att sortera dina kolumner i fallande ordning. Kom ihåg att du måste ange namnen på kolumnerna i en lista för att sortera dem samtidigt.
df.sort_values (by = ["Kundnummer", "Stad"], stigande = Falskt)
Sortering efter flera kolumner i olika sorteringsordningar
Med grunderna för att sortera ur vägen, vad händer när du vill sortera en kolumn i fallande ordning och en annan i stigande ordning? Du måste justera din kod något för att införliva dessa krav.
Till exempel för att sortera Område och Stad kolumner i fallande respektive stigande ordning:
df.sort_values (by = ["Område", "Stad"], stigande = [falskt, sant])
Förklaringen till denna kod är enkel; du definierar DataFrame-namnet och skickar sorteringsvärden fungerar tillsammans med kolumnnamnen i en lista. Du bör använda Boolean värden för att ange sorteringsordningen.
Att anropa funktionen så här betyder att Python först kommer att sortera efter DataFrames Region-kolumn i fallande ordning. Sedan kommer rader med en identisk region att sorteras ytterligare efter kolumnen Stad, i stigande ordning.
3. Hur man sorterar kolumner i en dataram efter index
Indexvariabeln är standardvärdet som tilldelas varje rad inom en Python Dataframe. Du kan definiera indexvärdena eller låta Python ställa in ett indexvärde på egen hand.
För att sortera data efter dess indexvärde kan du använda sort_index fungera. Denna funktion sorterar baserat på index snarare än på några värden som finns i den ursprungliga datamängden.
df.sort_index()
Som med sort_values kan du skicka en stigande parameter för att ange sorteringsriktningen. Till exempel, skicka ett värde på Falsk för att sortera data i fallande ordning:
df.sort_index (stigande = Falsk)
4. Sortera kolumner i en dataram istället för rader
Istället för att sortera raderna i en DataFrame kan du sortera dess kolumner. Du kan göra det genom att anropa sort_index-metoden och skicka den en axel parameter med värdet på 1:
df.sort_index (axel=1)
Detta steg sorterar DataFrame, efter dess kolumner, i stigande ordning. För att sortera DataFrames kolumner i fallande ordning kan du ange sorteringsordningen i ditt sorteringssteg.
df.sort_index (axel=1, stigande = Falsk)
5. Ändra DataFrame medan du sorterar den
De två sorteringsmetoderna fungerar genom att returnera en kopia av originaldata, i dess nysorterade tillstånd. För att spara lagringsutrymme, eller helt enkelt för att skriva mer koncis kod, kan du ändra den ursprungliga DataFrame-data istället. Varje metod accepterar en på plats boolesk parameter som modifierar data istället för att returnera en modifierad kopia.
df.sort_values (by = ["Kundnummer", "Stad"], stigande = Falskt, på plats = Sant)
Lär dig sortera data i Python
Python replikerar många av Excels inbyggda funktioner med några rader kod. Från sorteringsprocedurer till att skapa utarbetade pivottabeller på dina data, du namnger det och du kan göra det i Python.
Om du fortfarande är ny på Python och lär dig repen, kommer dessa steg att förbättra dina kodningsfärdigheter relativt enkelt.