我是靠谱客的博主 文艺石头,这篇文章主要介绍pandas映射问题,现在分享给大家,希望可以做个参考。

使用案例1

复制代码
1
2
3
4
5
6
7
8
9
import pandas as pd df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], 'key2' : ['one', 'two', 'one', 'two', 'one'], 'data1' : np.arange(5), 'data2' : np.arange(5,10)}) print(df) df['data1'] = df['data1'].map(lambda x : "%.3f"%x) #lambda在这里其实是在定义一个简单的函数,一个没有函数名的函数。 df# 将数字保持三位有效数字
复制代码
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
key1 key2 data1 data2 0 a one 0 5 1 a two 1 6 2 b one 2 7 3 b two 3 8 4 a one 4 9 key1 object key2 object data1 int64 data2 int64 dtype: object
key1key2data1data2
0aone0.0005
1atwo1.0006
2bone2.0007
3btwo3.0008
4aone4.0009

使用案例2

复制代码
1
2
3
4
5
6
7
8
df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], 'key2' : ['one', 'two', 'one', 'two', 'one'], 'data1' : np.arange(5), 'data2' : np.arange(5,10)}) print(df) df['key1'] = df['key1'].map({'a':'c',"b":"d"}) df
复制代码
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
key1 key2 data1 data2 0 a one 0 5 1 a two 1 6 2 b one 2 7 3 b two 3 8 4 a one 4 9
key1key2data1data2
0cone05
1ctwo16
2done27
3dtwo38
4cone49

使用案例3

复制代码
1
2
3
4
5
6
7
8
df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], 'key2' : ['one', 'two', 'one', 'two', 'one'], 'data1' : np.arange(5), 'data2' : np.arange(5,10)}) print(df) df['key1'] = df['key1'].map({'a':'b',"b":"a"})# 互相映射 df
复制代码
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
key1 key2 data1 data2 0 a one 0 5 1 a two 1 6 2 b one 2 7 3 b two 3 8 4 a one 4 9
key1key2data1data2
0bone05
1btwo16
2aone27
3atwo38
4bone49

使用案例4

复制代码
1
2
3
4
5
6
7
8
9
df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], 'key2' : ['one', 'two', 'one', 'two', 'one'], 'data1' : np.arange(5), 'data2' : np.arange(5,10)}) print(df) df['key1'] = df['key1'].map({'a':'aaaa'})# 互相映射 print(df)## ## 可以看到这里的问题是如果映射的值不是全部的key,那么不完整的key会被映射成Nan
复制代码
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
key1 key2 data1 data2 0 a one 0 5 1 a two 1 6 2 b one 2 7 3 b two 3 8 4 a one 4 9 key1 key2 data1 data2 0 aaaa one 0 5 1 aaaa two 1 6 2 NaN one 2 7 3 NaN two 3 8 4 aaaa one 4 9

使用案例5

复制代码
1
2
3
4
5
6
7
8
9
df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], 'key2' : ['one', 'two', 'one', 'two', 'one'], 'data1' : np.arange(5), 'data2' : np.arange(5,10)}) print(df) df['key1'] = df['key1'].map({'a':'aaaa'}).fillna(df['key1']) print(df)## ## 加入fillna就可以做到粗存在映射的键值保持原来一样
复制代码
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
key1 key2 data1 data2 0 a one 0 5 1 a two 1 6 2 b one 2 7 3 b two 3 8 4 a one 4 9 key1 key2 data1 data2 0 aaaa one 0 5 1 aaaa two 1 6 2 b one 2 7 3 b two 3 8 4 aaaa one 4 9
复制代码
1
2

最后

以上就是文艺石头最近收集整理的关于pandas映射问题的全部内容,更多相关pandas映射问题内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部