将功能应用于系列
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