Pandas & NumPy Academy · Lektion

Skapa en Series

Skapa en Pandas Series från en Python-lista, en dict och en NumPy-array och inspektera dess index- och values-attribut.

Lektion 1 av 413 steg

Skapa en Series är en gratis lektion i Pandas & NumPy Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Pandas & NumPy Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Pandas & NumPy Academy innehåller totalt 4 lektioner.

Vad är en Pandas Series?

En Pandas Series är en endimensionell array med etiketter som kan innehålla alla datatyper – heltal, flyttal, strängar, Python-objekt eller till och med andra Series. Tänk på den som en NumPy-array med ett anpassat index (etiketter för varje element). Det är indexet som gör Series mycket kraftfullare än vanliga arrayer i dataanalys, där värden behöver beskrivande namn.

import pandas as pd
import numpy as np

s = pd.Series([10, 20, 30, 40])
print(s)
# 0    10
# 1    20
# 2    30
# 3    40
# dtype: int64

Skapa en Series från en Python-lista

Om du skickar en Python-lista till pd.Series() skapas en Series med ett standardmässigt heltalsindex av typen RangeIndex (0, 1, 2, ...). Du kan ange egna indexetiketter via parametern index=. Indexlistans längd måste motsvara datans längd. Etiketterna kan vara strängar, heltal, datum eller andra hashbara Python-objekt.

import pandas as pd

temps = pd.Series([22.5, 19.0, 25.3, 17.8],
                  index=['Mon', 'Tue', 'Wed', 'Thu'])
print(temps)
# Mon    22.5
# Tue    19.0
# Wed    25.3
# Thu    17.8
# dtype: float64

Skapa en Series från en dictionary

En Python-dict kan skickas direkt till pd.Series(). Dictionariets nycklar blir indexetiketter och värdena blir data. Det här är ett av de naturligaste sätten att skapa en Series när datan redan har meningsfulla etiketter. Den resulterande Series sorteras efter dictionariets insättningsordning (Python 3.7+).

import pandas as pd

stock = {'AAPL': 182.5, 'GOOG': 141.3, 'MSFT': 378.9}
s = pd.Series(stock)
print(s)
# AAPL    182.5
# GOOG    141.3
# MSFT    378.9
# dtype: float64

Skapa en Series från en NumPy-array

En NumPy-ndarray kan skickas som dataargument. Series-objektets dtype motsvarar ndarray-objektets dtype. Underliggande data lagras som en NumPy-array, så alla NumPy-ufuncs fungerar direkt på Series. Det gör det enkelt att flytta befintlig NumPy-kod till Pandas utan att skriva om logiken för databeredning.

import pandas as pd
import numpy as np

arr = np.linspace(0, 1, 5)
s = pd.Series(arr, index=['a', 'b', 'c', 'd', 'e'])
print(s)
# a    0.00
# b    0.25
# c    0.50
# d    0.75
# e    1.00

Attributen .index och .values

s.index returnerar Index-objektet som innehåller etiketterna. s.values returnerar den underliggande NumPy-arrayen med datavärdena. Båda är viktiga för interoperabilitet: du kan skicka s.values till valfri NumPy-funktion och konvertera resultatet tillbaka till en Series med det ursprungliga indexet. s.dtype anger värdenas datatyp.

import pandas as pd

s = pd.Series([3, 1, 4], index=['x', 'y', 'z'])
print(s.index)   # Index(['x', 'y', 'z'], dtype='object')
print(s.values)  # [3 1 4]
print(s.dtype)   # int64

Series namn och indexnamn

En Series kan ha attributet .name som beskriver vad värdena representerar, och dess index kan ha attributet .name som beskriver vad etiketterna representerar. Namnen visas i DataFrames när en Series tilldelas en kolumn och i diagrametiketter. Ange dem med s.name = 'price' eller vid skapandet med name=.

import pandas as pd

s = pd.Series([1.2, 3.4, 5.6],
              index=['a', 'b', 'c'],
              name='measurement')
s.index.name = 'label'
print(s)
# label
# a    1.2
# b    3.4
# c    5.6
# Name: measurement, dtype: float64

Skapa en skalär Series

Om du skickar ett enda skalärt värde till pd.Series() tillsammans med ett uttryckligt index skapas en Series där varje element är lika med det skalära värdet. Det liknar NumPys np.full() och är praktiskt när du vill skapa konstanta baslinje-Series att subtrahera från eller jämföra med en Series med verkliga data.

import pandas as pd

s = pd.Series(5, index=['a', 'b', 'c', 'd'])
print(s)
# a    5
# b    5
# c    5
# d    5
# dtype: int64

Automatisk indexjustering

En av de kraftfullaste funktionerna i Pandas Series är automatisk indexjustering. När du adderar två Series justerar Pandas dem efter deras etiketter innan resultatet beräknas. Om en etikett finns i den ena Series men inte i den andra blir resultatet vid den etiketten NaN. Detta förhindrar tysta förskjutningsfel som är vanliga vid beräkningar med NumPy-arrayer.

import pandas as pd

a = pd.Series([1, 2], index=['x', 'y'])
b = pd.Series([10, 20], index=['y', 'z'])
print(a + b)
# x     NaN
# y    12.0
# z     NaN

Kontrollera Series längd och form

len(s) returnerar antalet element. s.shape returnerar en tupel (n,) i enlighet med NumPy-konventionerna. s.size är samma som len(s). Använd dessa kontroller i början av en pipeline för att verifiera att datainläsningen gav det förväntade antalet rader innan analysen fortsätter.

import pandas as pd

s = pd.Series(range(10))
print(len(s))     # 10
print(s.shape)    # (10,)
print(s.size)     # 10
print(s.ndim)     # 1

Konvertera en Series till andra typer

Du kan konvertera en Series tillbaka till en Python-lista med s.tolist(), till en NumPy-array med s.to_numpy() eller s.values, och till en dict med s.to_dict(). Dessa konverteringar är användbara för interoperabilitet med bibliotek som inte accepterar Pandas-objekt och för att serialisera resultat till JSON eller CSV.

import pandas as pd

s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s.tolist())      # [10, 20, 30]
print(s.to_numpy())    # [10 20 30]
print(s.to_dict())     # {'a': 10, 'b': 20, 'c': 30}

Series kontra DataFrame-kolumn

En enskild kolumn i en DataFrame är en Series. När du hämtar df['col'] returnerar Pandas en Series med samma index som DataFrame-objektet. Omvänt kan en Series med ett name direkt infogas i en DataFrame som en kolumn. Om du förstår detta samband blir det enklare att växla mellan Series- och DataFrame-operationer.

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
col = df['a']           # Series
print(type(col))        # <class 'pandas.core.series.Series'>
print(col.values)       # [1 2 3]

Snabbtest

Testa dina kunskaper om hur man skapar Pandas Series från den här lektionen.

Lektionssammanfattning

I den här lektionen lärde du dig att: en Series är en etiketterad 1D-array som bygger på en NumPy-ndarray, den kan skapas från listor, dicts, NumPy-arrayer eller skalärer, och indexjustering hanterar automatiskt etikettbaserad aritmetik mellan två Series. Nästa del handlar om att hämta Series-element via etikett med .loc och via position med .iloc.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Skapa en Series” gratis?

Ja – hela texten till ”Skapa en Series” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Pandas & NumPy Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Pandas & NumPy Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skapa en Series”?

Skapa en Pandas Series från en Python-lista, en dict och en NumPy-array och inspektera dess index- och values-attribut. Ni övar på Pandas & NumPy Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Pandas & NumPy Academy?

Du behöver inga förkunskaper. Utbildningen i Pandas & NumPy Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Skapa en Series”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Pandas & NumPy Academy-lektionen?

Ja. Varje Pandas & NumPy Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skapa en Series
  2. Åtkomst baserad på etiketter och positioner
  3. Vektoriserade operationer på Series
  4. Användbara Series-metoder
← Tillbaka till Pandas & NumPy Academy