下面举例说明。

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