引入包
import numpy as np
import pandas as pd
from pandas import DataFrame
一、替换操作
- 替换操作可以同步作用于Series和DataFrame中
单值替换
普通替换:替换所有符合要求的原色:to_replace = 15, value =‘e’
按列指定单值替换: to_replace ={列标签: 替换值}value =‘value’
多值替换
- 列表替换:to_replace =[] value = []
- 字典替换(推荐)⭐ to_replace = {to_replace:value, to_replace:value}
df = DataFrame(data = np.random.randint(0,100,size=(5,6)))
df
- 单值替换
将数据中8替换成eight
df.replace(to_replace=8,value='eight')
- 多值替换
使用
字典
复制给to_replace
df.replace(to_replace={
0:'zero',1:'one'})
- 指定列的替换
替换第2列中的31为指定内容
df.replace(to_replace={
2:31},value=333111)
若没有指定列
df.replace(to_replace=31,value=333111)
二、映射操作⭐
- 概念: 创建一个映射关系表,把values元素和一个特定的标签或者字符串绑定(给以元素值提供不同的表现形式)
- 创建一个df,两列分别是姓名和薪资,然后给其名字起对应的英文名
dic = {
'name':['张三','李四','张三'],
'salary':[15000,20000,15000]
}
df = DataFrame(data = dic)
df
map只是Series的方法,只能被Series调用
#映射关系表:制定了映射的对照关系
dic = {
'张三':'tom',
'李四':'jerry'
}
df['e_name'] = df['name'].map(dic)
df
小案例-计算税后薪资
- 超过3000部分的钱缴纳50%的税,计算每个人的税后薪资
def after_sal(s):
return s - (s-3000)*0.5
df['after_sal'] = df['salary'].map(after_sal)
df
DataFrame 中apply操作
apply
:将函数作用到行或者列中applymap
:将某种元素作用到每一个元素上
df = DataFrame(data = np.random.randint(0,10,size=(5,3)))
df
- apply
- 与axis参数一起使用
- df中有几行/几列 func函数就会执行几次