我是
靠谱客 的博主
粗犷水蜜桃 ,最近开发中收集的这篇文章主要介绍
pandas 数据转换函数map、apply、applymap ,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
import pandas as pd
import os
os. chdir( r'C:UsersHansDesktopdata_analysis' )
df = pd. read_excel( 'pandas_multiindex.xls' )
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 0 2020年5月27日 201.18 202.64 202.64 196.77 23.61M -0.0027 BABA 1 2020年5月26日 201.72 205.96 206.69 201.16 28.68M 0.0101 BABA 2 2020年5月22日 199.70 203.23 204.88 198.99 51.98M -0.0587 BABA 3 2020年5月21日 212.16 210.91 214.51 209.54 29.85M -0.0214 BABA 4 2020年5月20日 216.79 220.12 221.10 210.78 38.32M -0.0019 BABA
“”" (1)map 只用于Series,实现每个值–>值的映射 (2)apply 用于Series实现每个值的处理,用于DataFrame实现某个轴的Series的处理 (3)applymap 只能用于DataFrame,用于处理DataFrame的每个元素 “”"
df[ "公司" ] . unique( )
array(['BABA', 'JD', 'JSR', 'HR'], dtype=object)
dict_names = { "BABA" : "阿里巴巴" , "JD" : "京东" , "JSR" : "金斯瑞" , "HR" : "恒瑞" }
df[ "公司中文名称1" ] = df[ "公司" ] . map ( dict_names)
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 公司中文名称1 0 2020年5月27日 201.18 202.64 202.64 196.77 23.61M -0.0027 BABA 阿里巴巴 1 2020年5月26日 201.72 205.96 206.69 201.16 28.68M 0.0101 BABA 阿里巴巴 2 2020年5月22日 199.70 203.23 204.88 198.99 51.98M -0.0587 BABA 阿里巴巴 3 2020年5月21日 212.16 210.91 214.51 209.54 29.85M -0.0214 BABA 阿里巴巴 4 2020年5月20日 216.79 220.12 221.10 210.78 38.32M -0.0019 BABA 阿里巴巴
df[ "公司中文2" ] = df[ "公司" ] . map ( lambda x: dict_names[ x] )
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 公司中文名称1 公司中文2 0 2020年5月27日 201.18 202.64 202.64 196.77 23.61M -0.0027 BABA 阿里巴巴 阿里巴巴 1 2020年5月26日 201.72 205.96 206.69 201.16 28.68M 0.0101 BABA 阿里巴巴 阿里巴巴 2 2020年5月22日 199.70 203.23 204.88 198.99 51.98M -0.0587 BABA 阿里巴巴 阿里巴巴 3 2020年5月21日 212.16 210.91 214.51 209.54 29.85M -0.0214 BABA 阿里巴巴 阿里巴巴 4 2020年5月20日 216.79 220.12 221.10 210.78 38.32M -0.0019 BABA 阿里巴巴 阿里巴巴
df[ "公司中文3" ] = df[ "公司" ] . apply ( lambda x: dict_names[ x] )
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 公司中文名称1 公司中文2 公司中文3 0 2020年5月27日 201.18 202.64 202.64 196.77 23.61M -0.0027 BABA 阿里巴巴 阿里巴巴 阿里巴巴 1 2020年5月26日 201.72 205.96 206.69 201.16 28.68M 0.0101 BABA 阿里巴巴 阿里巴巴 阿里巴巴 2 2020年5月22日 199.70 203.23 204.88 198.99 51.98M -0.0587 BABA 阿里巴巴 阿里巴巴 阿里巴巴 3 2020年5月21日 212.16 210.91 214.51 209.54 29.85M -0.0214 BABA 阿里巴巴 阿里巴巴 阿里巴巴 4 2020年5月20日 216.79 220.12 221.10 210.78 38.32M -0.0019 BABA 阿里巴巴 阿里巴巴 阿里巴巴
df[ "公司中文4" ] = df. apply ( lambda x: dict_names[ x[ "公司" ] ] , axis = 1 )
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 公司中文名称1 公司中文2 公司中文3 公司中文4 0 2020年5月27日 201.18 202.64 202.64 196.77 23.61M -0.0027 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 1 2020年5月26日 201.72 205.96 206.69 201.16 28.68M 0.0101 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 2 2020年5月22日 199.70 203.23 204.88 198.99 51.98M -0.0587 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 3 2020年5月21日 212.16 210.91 214.51 209.54 29.85M -0.0214 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 4 2020年5月20日 216.79 220.12 221.10 210.78 38.32M -0.0019 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴
sub_df = df[ [ "收盘" , "开盘" , "高" , "低" , "交易量" ] ]
sub_df. head( )
收盘 开盘 高 低 交易量 0 201.18 202.64 202.64 196.77 23.61M 1 201.72 205.96 206.69 201.16 28.68M 2 199.70 203.23 204.88 198.99 51.98M 3 212.16 210.91 214.51 209.54 29.85M 4 216.79 220.12 221.10 210.78 38.32M
sub_df[ "交易量" ] = sub_df[ "交易量" ] . str . replace( "M" , "" )
sub_df. head( )
C:ProgramDataAnaconda3libsite-packagesipykernel_launcher.py:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
"""Entry point for launching an IPython kernel.
收盘 开盘 高 低 交易量 0 201.18 202.64 202.64 196.77 23.61 1 201.72 205.96 206.69 201.16 28.68 2 199.70 203.23 204.88 198.99 51.98 3 212.16 210.91 214.51 209.54 29.85 4 216.79 220.12 221.10 210.78 38.32
sub_df02 = df[ [ "收盘" , "开盘" , "高" , "低" ] ]
sub_df02. applymap( lambda x: int ( x) ) . head( )
收盘 开盘 高 低 0 201 202 202 196 1 201 205 206 201 2 199 203 204 198 3 212 210 214 209 4 216 220 221 210
df. loc[ : , [ '收盘' , '开盘' , '高' , '低' ] ] = sub_df02. applymap( lambda x: int ( x) ) . head( )
df. head( )
日期 收盘 开盘 高 低 交易量 涨跌幅 公司 公司中文名称1 公司中文2 公司中文3 公司中文4 0 2020年5月27日 201.0 202.0 202.0 196.0 23.61M -0.0027 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 1 2020年5月26日 201.0 205.0 206.0 201.0 28.68M 0.0101 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 2 2020年5月22日 199.0 203.0 204.0 198.0 51.98M -0.0587 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 3 2020年5月21日 212.0 210.0 214.0 209.0 29.85M -0.0214 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴 4 2020年5月20日 216.0 220.0 221.0 210.0 38.32M -0.0019 BABA 阿里巴巴 阿里巴巴 阿里巴巴 阿里巴巴
最后
以上就是粗犷水蜜桃 为你收集整理的pandas 数据转换函数map、apply、applymap 的全部内容,希望文章能够帮你解决pandas 数据转换函数map、apply、applymap 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站 推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复