map(), apply()和applymap()的区别与应用

总结:

1.apply()是一种让函数作用于DataFrame中行或列的操作。
2.applymap()是一种让函数作用于DataFrame每一个元素的操作。
3.map()是一种让函数作用于Series每一个元素的操作。

apply()、map()和applymap()的区别就在于应用场景的不同
https://blog.csdn.net/GR346305172/article/details/100174898

1.apply()

apply()将一个函数作用于DataFrame中的行或列,如下所示

import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(4, 3),columns=list('bde'),index=['Utah', 'Ohio', 'Texas', 'Oregon'])
frame
b	d	e
Utah	-0.774163	0.224804	-0.715506
Ohio	-0.678502	-1.864374	-0.652795
Texas	1.282988	-0.801617	-0.339106
Oregon	-1.077619	0.415863	0.454939
f = lambda x: x.max() - x.min()
frame.apply(f)
b    2.360607
d    2.280237
e    1.170445
dtype: float64

2.applymap()

applymap()则作用于DataFrame中的每一个元素,如下所示


import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(4, 3),columns=list('bde'),index=['Utah', 'Ohio', 'Texas', 'Oregon'])import pandas as pd
import numpy as np
#小数点后的2代表2位小数
format = lambda x: '%.2f' % x
frame.applymap(format)
​
b	d	e
Utah	-0.10	-0.97	0.08
Ohio	-1.33	1.58	1.43
Texas	-0.62	0.29	-0.54
Oregon	-1.80	-1.08	-1.13

3.map()
map()是一个Series的函数,DataFrame结构中无法使用map()。map()则是将函数作用于Series中的每一个元素,如下所示


import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(4, 3),columns=list('bde'),index=['Utah', 'Ohio', 'Texas', 'Oregon'])
format = lambda x: '%.2f' % x
frame['e'].map(format)
Utah       0.92
Ohio      -0.74
Texas      1.29
Oregon    -0.45
Name: e, dtype: object

发布了273 篇原创文章 · 获赞 1 · 访问量 4678

猜你喜欢

转载自blog.csdn.net/wj1298250240/article/details/104011792