概述
使用案例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
key1 | key2 | data1 | data2 | |
---|---|---|---|---|
0 | a | one | 0.000 | 5 |
1 | a | two | 1.000 | 6 |
2 | b | one | 2.000 | 7 |
3 | b | two | 3.000 | 8 |
4 | a | one | 4.000 | 9 |
使用案例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
key1 | key2 | data1 | data2 | |
---|---|---|---|---|
0 | c | one | 0 | 5 |
1 | c | two | 1 | 6 |
2 | d | one | 2 | 7 |
3 | d | two | 3 | 8 |
4 | c | one | 4 | 9 |
使用案例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
key1 | key2 | data1 | data2 | |
---|---|---|---|---|
0 | b | one | 0 | 5 |
1 | b | two | 1 | 6 |
2 | a | one | 2 | 7 |
3 | a | two | 3 | 8 |
4 | b | one | 4 | 9 |
使用案例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映射问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复