Pandas中的数据转换函数map、apply、applymap_17

import pandas as pd
import numpy as np

"""
本节主要介绍pandas中的数据转换函数map、apply、applymap
1.map:只用于series,实现每个值->每个值的映射
2.apply:用于series实现每个值的处理,用于dataframe实现每个轴的series处理
3.applymap:只用于dataframe,用于处理该dataframe的每个元素
"""

# 一、map用于Series值的转换
"""
实例:将股票代码英文转换为中文
Series.map(dict) or Series.map(function)
"""
stocks = pd.read_excel('./test.xlsx')
print(stocks['公司'].unique())

# 公司股票代码到中文的映射,注意这里是小写
dict_company_names = {
    'baidu':'百度',
    'baba':'阿里巴巴',
    'iq':'爱奇艺',
    'jd':'京东'
}
# 方法一:series.map(dict)
stocks['公司中文1'] = stocks['公司'].str.lower().map(dict_company_names)
# 方法二:series.map(function)
# function里面的参数是series里面的每个值
stocks['公司中文2'] = stocks['公司'].map(lambda x : dict_company_names[x.lower()])

# 二、apply用于series和dataframe的转换
"""
series.apply(function),函数的参数是每个值
dataframe.apply(function),函数的参数是series
"""
# 1.series.apply(function),function的参数是series的每个值
stocks['公司中文3'] = stocks['公司'].apply(lambda x : dict_company_names[x.lower()])
# 2.dataframe.apply(function),function的参数是对应轴的series
# apply是在dataframe上面调用
# lambda x的x是一个series,因为指定了axis=1所以series的key是列名,可以用x['公司']获取
stocks['公司中文4'] = stocks.apply(lambda x : dict_company_names[x['公司'].lower()],axis=1)

# 三、applymap用于dataframe所有值的转换
# 选择某几列赋值给dataframe
sub_df = stocks[['收盘','开盘','高','低','交易量']]
# 将这些数字取整数,应用于所有函数
sub_df.applymap(lambda x : int(x))
# 还可以直接修改原df的那几列
stocks.loc[:,['收盘','开盘','高','低','交易量']] = sub_df.applymap(lambda x : int(x))





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值