Suche…
Beispiele für die Erstellung einer einfachen Serie
Eine Serie ist eine eindimensionale Datenstruktur. Es ist ein bisschen wie ein überladenes Array oder ein Wörterbuch.
import pandas as pd
s = pd.Series([10, 20, 30])
>>> s
0 10
1 20
2 30
dtype: int64
Jeder Wert in einer Reihe hat einen Index. Standardmäßig handelt es sich bei den Indizes um Ganzzahlen, die von 0 bis zur Serienlänge minus 1 laufen. Im obigen Beispiel sehen Sie die Indizes, die links von den Werten gedruckt sind.
Sie können Ihre eigenen Indizes angeben:
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 mit Datumszeit
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]
Ein paar kurze Tipps zu Serien in Pandas
Nehmen wir an, wir haben folgende Serie:
>>> 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
Nachfolgend einige einfache Dinge, die sich beim Arbeiten mit der Serie als nützlich erweisen:
Um die Länge von s zu erhalten:
>>> len(s)
8
Zugriff auf ein Element in s:
>>> s[4]
8
So greifen Sie mit dem Index auf ein Element in s zu:
>>> s.loc[2]
6
Zugriff auf eine Unterserie innerhalb von s:
>>> s[1:3]
1 4
2 6
dtype: int64
So erhalten Sie eine Unterserie von Werten mit Werten über 5:
>>> s[s > 5]
2 6
4 8
5 7
dtype: int64
Um die minimale, maximale, mittlere und Standardabweichung zu erhalten:
>>> s.min()
1
>>> s.max()
8
>>> s.mean()
4.75
>>> s.std()
2.2519832529192065
So konvertieren Sie den Serientyp 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
So erhalten Sie die Werte in s als ein numpy-Array:
>>> s.values
array([1, 4, 6, 3, 8, 7, 4, 5])
So erstellen Sie eine Kopie von s:
>>> d = s.copy()
>>> d
0 1
1 4
2 6
3 3
4 8
5 7
6 4
7 5
dtype: int64
Anwenden einer Funktion auf eine Serie
Pandas bietet eine effektive Möglichkeit, eine Funktion auf jedes Element einer Serie anzuwenden und eine neue Serie zu erhalten. Nehmen wir an, wir haben folgende Serie:
>>> 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
und eine quadratische Funktion:
>>> def square(x):
... return x*x
Wir können Quadrat einfach auf jedes Element von s anwenden und eine neue Serie erhalten:
>>> t = s.apply(square)
>>> t
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
In manchen Fällen ist es einfacher, einen Lambda-Ausdruck zu verwenden:
>>> s.apply(lambda x: x ** 2)
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
oder wir können jede eingebaute Funktion verwenden:
>>> q = pd.Series(['Bob', 'Jack', 'Rose'])
>>> q.apply(str.lower)
0 bob
1 jack
2 rose
dtype: object
Wenn alle Elemente der Serie Zeichenfolgen sind, gibt es eine einfachere Möglichkeit, Zeichenfolgenmethoden anzuwenden:
>>> q.str.lower()
0 bob
1 jack
2 rose
dtype: object
>>> q.str.len()
0 3
1 4
2 4