Python-apply()、applymap()、map()的使用和区别

将一个自定义的函数应用到Pandas的数据结构中可以使用map(), apply()或者applymap(),它们的区别在于应用的对象不同。

1.map() 是一个Series的方法,DataFrame结构中没有map()。map()将一个自定义函数应用于Series结构中的每个元素(elements)。

2.apply()和applymap()是DataFrame的方法,Series中没有这两个方法。它们的区别在于,apply()方法是将某一个函数作用于DataFrame中的每个行或者列(默认是列),而applymap()是将函数做用于DataFrame中的每一个元素(elements)。

(1) DataFrame的重要方法

import numpy as np
import pandas as pd
def my_function1(my_data):
    return my_data.sum()
def my_function2(my_data):
    return my_data*100
my_array=np.arange(24).reshape((6,4))
my_df=pd.DataFrame(my_array,columns=['Eng','math','phys','Chem'])
print(my_df)
print(my_df.apply(my_function1   ))
print(my_df.applymap(my_function2))
结果:
Eng     60
math    66
phys    72
Chem    78
dtype: int64
    Eng  math  phys  Chem
0     0   100   200   300
1   400   500   600   700
2   800   900  1000  1100
3  1200  1300  1400  1500
4  1600  1700  1800  1900
5  2000  2100  2200  2300

(2)Series的map方法

使用map方法可以实现元素级转换以及其他数据清理工作的便捷方式。作用于Series的每一个元素上。

1.str属性

print(my_series.str.strip())  #my_series中的每一个元素两边去空格
print(my_series.str.lower())  #my_series中的每一个元素变为小写
print(my_series.str.upper())  #my_series中的每一个元素变为大写
print(my_series.str.title())  #my_series中的每一个元素变为首字母大写

2.Series的map方法的参数是一个含有映射关系的字典。

import pandas as pd
my_data = pd.DataFrame({'food':['bacon','pulled pork','bacon','pastrami',
            'corned beef','bacon','pastrami','honey ham','nova lox'],
                  'ounces':[4,3,12,6,7.5,8,3,5,6]})
my_dict= {'bacon':'pig','pulled pork':'pig','pastrami':'cow','corned beef':'cow',\
           'honey ham':'pig','nova lox':'salmon'}
my_data['animal'] = my_data['food'].map(my_dict)
my_data

Python-apply()、applymap()、map()的使用和区别

Original: https://blog.csdn.net/m0_72662900/article/details/125806631
Author: 泡泡怡
Title: Python-apply()、applymap()、map()的使用和区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751873/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球