• Part17:Pandas的数据转换函数--map、apply、applymap


    Pandas的数据转换函数map.apply、applymap

    数据转换函数对比: map、apply、applymap

    1.map用于Series值的转换

    实例:将股票代码英文转换成中文名字

    Series.map(dict) or Series.map(function)均可

    1. import pandas as pd
    2. stocks=pd.read_excel('./datas/stocks/互联网公司股票.xlsx')
    3. stocks.head()

    stocks['公司'].unique()
    1. #公司股票代码到中文的映射,注意这里要小写
    2. dict_company_names={
    3. 'bidu':'百度',
    4. 'baba':'阿里巴巴',
    5. 'iq':'爱奇艺',
    6. 'jd':'京东'
    7. }

    方法1:Series.map(dict) ----在map函数中传进去一个字典只用于Series 

    1. # stocks['公司'].str.lower()---将公司中的所有字母转换为小写字母
    2. # .map(dict_company_names)--把公司中所有对应的列转换为其对应的中文字母
    3. stocks['公司中文1']=stocks['公司'].str.lower().map(dict_company_names)
    4. stocks.head()

    方法2:Series.map(function) ----在map函数中传进去一个自定义函数只用于Series

    function的参数是Series的每个元素的值

    1. stocks['公司中文2']=stocks['公司'].map(lambda x:dict_company_names[x.lower()])
    2. stocks.head()

    2.apply用于Series和DataFrame的转换---既可以用于Series也可以用于DataFrame

    Series.apply(function),函数的参数是每个值.

    DataFrame.apply(function),函数的参数是Series

    Series.apply(function)

    function的参数是Series的每个值

    1. stocks['公司中文3']=stocks['公司'].apply(
    2. lambda x:dict_company_names[x.lower()]
    3. )
    4. stocks.head()

    DataFrame.apply(function)

    function的参数是对应轴的Series

    1. stocks['公司中文4']=stocks.apply(
    2. lambda x:dict_company_names[x['公司'].lower()],
    3. axis=1
    4. )
    5. stocks.head()

     

     

    注意这个代码:

    1. 1、apply是在stocks这个DataFrame上调用;
    2. 2、lambda x的x是一个Series,因为指定了axis=1所以Seires的key是列名,可以用x[公司"]获取

    3.applymap用于DataFrame所有值的转换

    1. sub_df=stocks[['收盘','开盘','高','低','交易量']]
    2. sub_df.head()

    1. #将这些数字取整数,应用于所有元素
    2. sub_df.applymap(lambda x:int(x))

     

    1. #直接修改原df的这几列
    2. stocks.loc[:,['收盘','开盘','高','低','交易量']]=sub_df.applymap(lambda x:int(x))
    3. stocks.head()

     

  • 相关阅读:
    一款新型的Linux服务器管理工具
    Ansible脚本进阶---playbook
    Vue3问题:如何实现el-tree树的单选?
    Docker仓库构建:官方仓库、私有仓库及企业级仓库harbor的搭建
    04、网络配置
    Vue3与Vue2:前端进化论,从性能到体验的全面革新
    opencv_模板匹配
    怎么用CSS画一个爱心?
    Shell 脚本变量使用和基本语法(待更新)
    mac系统如何安装nacos(window系统通用)?详细教程一文解决
  • 原文地址:https://blog.csdn.net/qq_46044325/article/details/126909106