Series的map方法可以接受一个函数或含有映射关系的字典型对象。
使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。
(DataFrame中对应的是applymap()函数,当然DataFrame还有apply()函数)
1、字典映射
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import pandas as pd
from pandas import Series, DataFrame
data = DataFrame({ 'food' :[ 'bacon' , 'pulled pork' , 'bacon' , 'Pastrami' ,
'corned beef' , 'Bacon' , 'pastrami' , 'honey ham' , 'nova lox' ],
'ounces' :[ 4 , 3 , 12 , 6 , 7.5 , 8 , 3 , 5 , 6 ]})
meat_to_animal = {
'bacon' : 'pig' ,
'pulled pork' : 'pig' ,
'pastrami' : 'cow' ,
'corned beef' : 'cow' ,
'honey ham' : 'pig' ,
'nova lox' : 'salmon' }
data[ 'animal' ] = data[ 'food' ]. map ( str .lower). map (meat_to_animal)
data
data[ 'food' ]. map ( lambda x: meat_to_animal[x.lower()])
|
2、应用函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
In [ 579 ]: import pandas as pd
In [ 580 ]: from pandas import Series, DataFrame
In [ 581 ]: index = pd.date_range( '2017-08-15' , periods = 10 )
In [ 582 ]: ser = Series( list ( range ( 10 )), index = index)
In [ 583 ]: ser
Out[ 583 ]:
2017 - 08 - 15 0
2017 - 08 - 16 1
2017 - 08 - 17 2
2017 - 08 - 18 3
2017 - 08 - 19 4
2017 - 08 - 20 5
2017 - 08 - 21 6
2017 - 08 - 22 7
2017 - 08 - 23 8
2017 - 08 - 24 9
Freq: D, dtype: int64
In [ 585 ]: ser.index. map ( lambda x: x.day)
Out[ 585 ]: Int64Index([ 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 ], dtype = 'int64' )
In [ 586 ]: ser.index. map ( lambda x: x.weekday)
Out[ 586 ]: Int64Index([ 1 , 2 , 3 , 4 , 5 , 6 , 0 , 1 , 2 , 3 ], dtype = 'int64' )
In [ 587 ]: ser. map ( lambda x: x + 10 )
Out[ 587 ]:
2017 - 08 - 15 10
2017 - 08 - 16 11
2017 - 08 - 17 12
2017 - 08 - 18 13
2017 - 08 - 19 14
2017 - 08 - 20 15
2017 - 08 - 21 16
2017 - 08 - 22 17
2017 - 08 - 23 18
2017 - 08 - 24 19
Freq: D, dtype: int64
In [ 588 ]: def f(x):
...: if x < 5 :
...: return True
...: else :
...: return False
...:
In [ 589 ]: ser. map (f)
Out[ 589 ]:
2017 - 08 - 15 True
2017 - 08 - 16 True
2017 - 08 - 17 True
2017 - 08 - 18 True
2017 - 08 - 19 True
2017 - 08 - 20 False
2017 - 08 - 21 False
2017 - 08 - 22 False
2017 - 08 - 23 False
2017 - 08 - 24 False
Freq: D, dtype: bool
|
以上这篇对pandas中Series的map函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xiaodongxiexie/article/details/53180510