將功能應用於系列

Pandas 提供了一種將函式應用於 Series 的每個元素並獲得新系列的有效方法。我們假設我們有以下系列:

>>> 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

和方函式:

>>> def square(x):
...     return x*x

我們可以簡單地將 square 應用於 s 的每個元素並獲得一個新系列:

>>> t = s.apply(square)
>>> t
0     9
1    49
2    25
3    64
4    81
5     1
6     0
7    16
dtype: int64

在某些情況下,使用 lambda 表示式更容易:

>>> s.apply(lambda x: x ** 2)
0     9
1    49
2    25
3    64
4    81
5     1
6     0
7    16
dtype: int64

或者我們可以使用任何內建函式:

>>> q = pd.Series(['Bob', 'Jack', 'Rose'])
>>> q.apply(str.lower)
0     bob
1    jack
2    rose
dtype: object

如果 Series 的所有元素都是字串,則有一種更簡單的方法來應用字串方法:

>>> q.str.lower()
0     bob
1    jack
2    rose
dtype: object
>>> q.str.len()
0    3
1    4
2    4