下面举例说明。
1 2 3 4 5 6
| import pandas as pd import numpy as np df = pd.DataFrame({'data1':np.arange(5), 'data2':np.arange(5,10) }) df
|
|
data1 |
data2 |
0 |
0 |
5 |
1 |
1 |
6 |
2 |
2 |
7 |
3 |
3 |
8 |
4 |
4 |
9 |
map()
map() 是一个Series函数,是将一个自定义函数作用于Series结构中每个元素(这里说明下Series和dataFrame关系:创建DataFrame数据可输入的数据类型中,每个Series为一列,Series索引合并为行索引)。
1 2
| df['data1'] = df['data1'].map(lambda x : x + 10) df
|
|
data1 |
data2 |
0 |
10 |
5 |
1 |
11 |
6 |
2 |
12 |
7 |
3 |
13 |
8 |
4 |
14 |
9 |
apply()
apply() 的功能是将一个自定义函数作用于 DataFrame 对象的行或者列。并且,apply()也可以作用于每一列元素
1 2
| df['data2'] = df['data2'].apply(lambda x : x + 10) df
|
|
data1 |
data2 |
0 |
10 |
15 |
1 |
11 |
16 |
2 |
12 |
17 |
3 |
13 |
18 |
4 |
14 |
19 |
1 2
| df['total'] = df[['data1','data2']].apply(lambda x : x.sum(),axis=1) df
|
|
data1 |
data2 |
total |
0 |
10 |
15 |
25 |
1 |
11 |
16 |
27 |
2 |
12 |
17 |
29 |
3 |
13 |
18 |
31 |
4 |
14 |
19 |
33 |
applymap()
apply() 的功能是将一个自定义函数作用于DataFrame所有元素
1
| df.applymap(lambda x: str(x) + "test")
|
|
data1 |
data2 |
total |
0 |
10test |
15test |
25test |
1 |
11test |
16test |
27test |
2 |
12test |
17test |
29test |
3 |
13test |
18test |
31test |
4 |
14test |
19test |
33test |