DataFrame里的replace替换方式
DataFrame里的replace替换
一对一替换
在Python中对某个值进行替换利用的是replace()方法,replace(A,B)表示将A替换成B。
有时候要对整个表进行替换,比如对全表中的缺失值进行替换,这个时候replace()方法就相当于fillna()方法了。
多对一替换
多对一替换就是把一块区域中的多个值替换成某一个值,已知现在有三个异常年龄(240、260、280),需要把这三个年龄都替换成正常范围年龄的平均值33,该怎么实现呢?
在 Python 中实现多对一的替换比较简单,同样也是利用 replace()方法, replace([A,B],C)表示将A、B替换成C。
多对多替换
多对多替换其实就是某个区域中多个一对一的替换。比如将年龄异常值240替换成平均值减一,260替换成平均值,280替换成平均值加一,该怎么实现呢?
在Python中若想实现多对多的替换,同样是借助replace()方法,将替换值与待替换值用字典的形式表示,replace({"A":"a","B":"b"}表示用a替换A,用b替换B。
解决dataframe替换值失败的问题
问题描述
最近在写大作业,有两个dataframe,其中一个是存在缺失值的,其缺失值可以从另一个dataframe里找到。
df1为需要填充的数据,这里仅以新增无症状为例;df2为要填充进去的参考值。
错误原因
需要通过两者时间相同进行筛选,然后将对应值进行修改,但是之前总无法修改,原因是.iloc的用法用错了,之前的错误语句如下:
for i in range(len(df1)): for j in range(len(df2)): if df1.iloc['日期'][i]==df2.iloc['日期'][j]: df1.iloc['新增无症状'][i]=df2.iloc['本土新增无症状'][j]
后来查了好多博客也没找到问题解决方法,后来看到了这个,简直救了大命
修后的语句
for i in range(len(df1)): for j in range(len(df2)): if df1['日期'].iloc[i]==df2['日期'].iloc[j]: df1['新增无症状'].iloc[i]=df2['本土新增无症状'].iloc[j]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout方式
这篇文章主要介绍了PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-02-02
最新评论