将功能应用于系列

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