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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow