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