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

使用案例1

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# 将数字保持三位有效数字

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

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

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

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

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

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

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

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就可以做到粗存在映射的键值保持原来一样

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

最后

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部