我是靠谱客的博主 甜美雪碧,这篇文章主要介绍pandas-05 map和replace操作# pandas-05 map和replace操作,现在分享给大家,希望可以做个参考。

# pandas-05 map和replace操作

map可以做一个映射,对于操作大型的dataframe来说就非常方便了,而且也不容易出错。replace的作用是替换,这个很好理解。

复制代码
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
import numpy as np import pandas as pd from pandas import Series, DataFrame # create a dataframe df1 = DataFrame({'城市':['北京', '上海', '广州'], '人口':[1000, 2000, 1500]}) print(df1) # 添加一列 # df1['GDP'] = Series([1000, 3000, 2000]) # print(df1) ''' 人口 城市 GDP 0 1000 北京 1000 1 2000 上海 3000 2 1500 广州 2000 ''' dfp_map = {'北京':1000, '上海':2000, '广州':3000} df1['GDP'] = df1['城市'].map(dfp_map) print(df1) ''' 人口 城市 GDP 0 1000 北京 1000 1 2000 上海 2000 2 1500 广州 3000 总结: 使用map还是比创建series有优势的,使用map就可以不关心dataframe的index, 只需要关注对应的城市即可。 注意下面的实验 ''' # 再做一个实验,添加一个index df2 = DataFrame({'城市':['北京', '上海', '广州'], '人口':[1000, 2000, 1500]}, index=['A', 'B', 'C']) print(df2) ''' 人口 城市 A 1000 北京 B 2000 上海 C 1500 广州 ''' df2['GDP'] = Series([1000, 2000, 3000]) print(df2) ''' 人口 城市 GDP A 1000 北京 NaN B 2000 上海 NaN C 1500 广州 NaN 可以看到答案是nan,这是为什么呢?因为 Series([1000, 2000, 3000])的索引默认是0,1,…… 所以就出现了问题。 解决方法是:必须要给series添加指定的索引。 ''' # replace in series s1 = Series(np.arange(10)) print(s1) ''' 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int64 ''' print(s1.replace(1, np.nan)) # 会返回一个新的series,也可以使用字典的方式{1: np.nan} ''' 0 0.0 1 NaN 2 2.0 3 3.0 4 4.0 5 5.0 6 6.0 7 7.0 8 8.0 9 9.0 dtype: float64 ''' # 还可以采用列表的方式,把多个元素个replace掉 print(s1.replace([1, 2, 3], [10, 20, 30])) ''' 0 0 1 10 2 20 3 30 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int64 '''

map可以做一个映射,对于操作大型的dataframe来说就非常方便了,而且也不容易出错。replace的作用是替换,这个很好理解。

复制代码
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
import numpy as np import pandas as pd from pandas import Series, DataFrame # create a dataframe df1 = DataFrame({'城市':['北京', '上海', '广州'], '人口':[1000, 2000, 1500]}) print(df1) # 添加一列 # df1['GDP'] = Series([1000, 3000, 2000]) # print(df1) ''' 人口 城市 GDP 0 1000 北京 1000 1 2000 上海 3000 2 1500 广州 2000 ''' dfp_map = {'北京':1000, '上海':2000, '广州':3000} df1['GDP'] = df1['城市'].map(dfp_map) print(df1) ''' 人口 城市 GDP 0 1000 北京 1000 1 2000 上海 2000 2 1500 广州 3000 总结: 使用map还是比创建series有优势的,使用map就可以不关心dataframe的index, 只需要关注对应的城市即可。 注意下面的实验 ''' # 再做一个实验,添加一个index df2 = DataFrame({'城市':['北京', '上海', '广州'], '人口':[1000, 2000, 1500]}, index=['A', 'B', 'C']) print(df2) ''' 人口 城市 A 1000 北京 B 2000 上海 C 1500 广州 ''' df2['GDP'] = Series([1000, 2000, 3000]) print(df2) ''' 人口 城市 GDP A 1000 北京 NaN B 2000 上海 NaN C 1500 广州 NaN 可以看到答案是nan,这是为什么呢?因为 Series([1000, 2000, 3000])的索引默认是0,1,…… 所以就出现了问题。 解决方法是:必须要给series添加指定的索引。 ''' # replace in series s1 = Series(np.arange(10)) print(s1) ''' 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int64 ''' print(s1.replace(1, np.nan)) # 会返回一个新的series,也可以使用字典的方式{1: np.nan} ''' 0 0.0 1 NaN 2 2.0 3 3.0 4 4.0 5 5.0 6 6.0 7 7.0 8 8.0 9 9.0 dtype: float64 ''' # 还可以采用列表的方式,把多个元素个replace掉 print(s1.replace([1, 2, 3], [10, 20, 30])) ''' 0 0 1 10 2 20 3 30 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int64 '''

转载于:https://www.cnblogs.com/wenqiangit/p/11252725.html

最后

以上就是甜美雪碧最近收集整理的关于pandas-05 map和replace操作# pandas-05 map和replace操作的全部内容,更多相关pandas-05内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部