Zoeken…
Voorbeelden van het maken van eenvoudige series
Een reeks is een gegevensstructuur met één dimensie. Het lijkt een beetje op een supercharged array of een woordenboek.
import pandas as pd
s = pd.Series([10, 20, 30])
>>> s
0 10
1 20
2 30
dtype: int64
Elke waarde in een reeks heeft een index. Standaard zijn de indices gehele getallen die lopen van 0 tot de reekslengte min 1. In het bovenstaande voorbeeld ziet u de indices links van de waarden.
U kunt uw eigen indices opgeven:
s2 = pd.Series([1.5, 2.5, 3.5], index=['a', 'b', 'c'], name='my_series')
>>> s2
a 1.5
b 2.5
c 3.5
Name: my_series, dtype: float64
s3 = pd.Series(['a', 'b', 'c'], index=list('ABC'))
>>> s3
A a
B b
C c
dtype: object
Serie met datetime
import pandas as pd
import numpy as np
np.random.seed(0)
rng = pd.date_range('2015-02-24', periods=5, freq='T')
s = pd.Series(np.random.randn(len(rng)), index=rng)
print (s)
2015-02-24 00:00:00 1.764052
2015-02-24 00:01:00 0.400157
2015-02-24 00:02:00 0.978738
2015-02-24 00:03:00 2.240893
2015-02-24 00:04:00 1.867558
Freq: T, dtype: float64
rng = pd.date_range('2015-02-24', periods=5, freq='T')
s1 = pd.Series(rng)
print (s1)
0 2015-02-24 00:00:00
1 2015-02-24 00:01:00
2 2015-02-24 00:02:00
3 2015-02-24 00:03:00
4 2015-02-24 00:04:00
dtype: datetime64[ns]
Een paar snelle tips over Series in Panda's
Laten we aannemen dat we de volgende serie hebben:
>>> import pandas as pd
>>> s = pd.Series([1, 4, 6, 3, 8, 7, 4, 5])
>>> s
0 1
1 4
2 6
3 3
4 8
5 7
6 4
7 5
dtype: int64
Hieronder volgen enkele eenvoudige dingen die van pas komen wanneer u met Series werkt:
Om de lengte van s te krijgen:
>>> len(s)
8
Toegang krijgen tot een element in s:
>>> s[4]
8
Toegang krijgen tot een element in s met behulp van de index:
>>> s.loc[2]
6
Toegang krijgen tot een subreeks binnen s:
>>> s[1:3]
1 4
2 6
dtype: int64
Om een subreeks van s te krijgen met waarden groter dan 5:
>>> s[s > 5]
2 6
4 8
5 7
dtype: int64
Om de minimale, maximale, gemiddelde en standaardafwijking te krijgen:
>>> s.min()
1
>>> s.max()
8
>>> s.mean()
4.75
>>> s.std()
2.2519832529192065
Om het serietype om te zetten in float:
>>> s.astype(float)
0 1.0
1 4.0
2 6.0
3 3.0
4 8.0
5 7.0
6 4.0
7 5.0
dtype: float64
Ga als volgt te werk om de waarden in s als een reeks te krijgen:
>>> s.values
array([1, 4, 6, 3, 8, 7, 4, 5])
Een kopie maken van s:
>>> d = s.copy()
>>> d
0 1
1 4
2 6
3 3
4 8
5 7
6 4
7 5
dtype: int64
Een functie toepassen op een serie
Panda's bieden een effectieve manier om een functie toe te passen op elk element van een serie en een nieuwe serie te krijgen. Laten we aannemen dat we de volgende serie hebben:
>>> import pandas as pd
>>> s = pd.Series([3, 7, 5, 8, 9, 1, 0, 4])
>>> s
0 3
1 7
2 5
3 8
4 9
5 1
6 0
7 4
dtype: int64
en een vierkante functie:
>>> def square(x):
... return x*x
We kunnen eenvoudig vierkant toepassen op elk element van s en een nieuwe serie krijgen:
>>> t = s.apply(square)
>>> t
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
In sommige gevallen is het gemakkelijker om een lambda-expressie te gebruiken:
>>> s.apply(lambda x: x ** 2)
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
of we kunnen elke ingebouwde functie gebruiken:
>>> q = pd.Series(['Bob', 'Jack', 'Rose'])
>>> q.apply(str.lower)
0 bob
1 jack
2 rose
dtype: object
Als alle elementen van de serie tekenreeksen zijn, is er een eenvoudigere manier om tekenreeksmethoden toe te passen:
>>> q.str.lower()
0 bob
1 jack
2 rose
dtype: object
>>> q.str.len()
0 3
1 4
2 4