python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > DataFrame里的replace替换

DataFrame里的replace替换方式

作者:gulie8

这篇文章主要介绍了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]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文