【Pandas 基础知识 数据修改总结】

 

目录

前言

一、 数据修改 loc与iloc

1.单值修改 修改红方英雄刺客荆轲为李白

 2.单行修改 修改辅助行为墨子

3.单列修改 修改红方伤害为10

4.按条件修改 修改蓝方伤害大于11的为MVP

二、数据修改 mask()与where()

1.mask()单值修改 修改红方英雄刺客荆轲为李白

2.mask()按条件修改 修改蓝方伤害大于11的为MVP 

3.where()按条件修改 修改蓝方伤害小于9的为Fail

 三、数据修改 replace() 

1.replace()单值修改 将荆轲修改为李白

2.replace()多值修改 多个值修改为单个值 

3.replace()多值修改 多个值修改为多个值

4.replace()多值修改 指定多列修改 

5.replace()正则表达式修改


前言

Pandas 数据修改最强总结,详见思维导图;

一、 数据修改 loc与iloc

记忆公式:
单值修改:df.loc[行索引,列索引]
单行修改:df.loc[行索引]或df.iloc[行索引];
单列修改:df[列索引]、df.loc[:,列索引]或df.iloc[:,列索引]
按条件修改: df.loc[[筛选后的DataFrame].index,列索引]

1.单值修改 修改红方英雄刺客荆轲为李白

df=pd.DataFrame({'英雄属性':['刺客','射手','法师','战士','辅助'],
                '红方英雄':['荆轲','卤蛋','甄姬','夏侯惇','项羽'],
                '红方伤害':[11.20,15.34,8.57,6.98,3.69],
                 '红方死亡次数':['1次','10次','8次','5次','6次'],
                '蓝方英雄':['赵云','马克','干将','吕布','刘禅'],
                '蓝方伤害':[10.82,11.36,10.87,9.69,6.53],
                '蓝方死亡次数':['5次','8次','4次','7次','10次']})
df.set_index('英雄属性',inplace=True)

df.loc['刺客','红方英雄']='李白'
df.iloc[0,0]='李白'
df.loc[df[df['红方英雄']=='荆轲'].index,'红方英雄']='李白'
df.iloc[0,0]='李白'

 2.单行修改 修改辅助行为墨子

df.loc['辅助']='墨子'
df.iloc[4]='墨子'

3.单列修改 修改红方伤害为10

df.loc[:,'红方伤害']=10
df.iloc[:,1]=10

4.按条件修改 修改蓝方伤害大于11的为MVP

df.loc[df[df['蓝方伤害']>11].index,'蓝方伤害']='MVP'

二、数据修改 mask()与where()

函数理解:

mask()函数和where()函数结构相同,含义相反;
mask()对条件成立做处理,where()函数对条件不成立做处理;
均可以对Series和DataFrame数据进行处理;

记忆公式:

mask(条件判断,条件成立的值)

where(条件判断,条件不成立的值)

1.mask()单值修改 修改红方英雄刺客荆轲为李白

df['红方英雄'].mask(df['红方英雄']=='荆轲','李白')

2.mask()按条件修改 修改蓝方伤害大于11的为MVP 

df['蓝方伤害'].mask(df['蓝方伤害']>11,'MVP')

3.where()按条件修改 修改蓝方伤害小于9的为Fail

 

df['蓝方伤害'].where(df['蓝方伤害']>9,'Fail')

 三、数据修改 replace() 

函数理解:

df.replace(to_replace=None,value=None,inplace=False,limit=None,regex=False,method='pad)
to_replace 查找要替换的值;
value 替换与查找匹配的值;
inplace 修改原数据;
limit 向前或向后填充的最大尺寸间隙;
regex 是否支持正则表达式;
method 替换方法;

1.replace()单值修改 将荆轲修改为李白

df.replace('荆轲','李白')

2.replace()多值修改 多个值修改为单个值 

df.replace(['荆轲','卤蛋',8.57],'英雄')

 3.replace()多值修改 多个值修改为多个值

df.replace(['荆轲','卤蛋',8.57],['李白','马克',9.99])

4.replace()多值修改 指定多列修改 

df.replace({
    '红方英雄':{'荆轲':'李白','卤蛋':'马克'},
    '红方伤害':{8.57:9.99,3.69:5.55}
})

5.replace()正则表达式修改

 replace()正则表达式修改,详见前期文章:

Pandas 数据替换 replace()函数详解

总结

总结一下Pandas数据修改的三中常用方法,loc与iloc方法;mask()与where()函数;replace()函数的用法,结合正则表达式,实现数据的快速处理。

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜WiFi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值