Python数据分析

Python数据分析 知识量:13 - 56 - 232

7.1 数据替换><

一对一替换- 7.1.1 -

数据替换常用于处理缺失值、异常值。

一对一替换就是将某一个值替换为另一个值,使用replace()函数来实现。

对于repace(A,B)来说,表示将A替换为B。replace()函数默认情况下不会改变原数据对象,可以设置参数inplace=True来使替换对原数据对象生效,即改变原数据对象。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
df['Sex'].replace('male','M',inplace=True)
print(df)

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name     Sex  Chinese  English  Math
0      Noah       M       90       50    66
1      Emma  female       56       56    55
2      Noah       M       90       50    66
3    Olivia  female       86       87    44
4      Liam       M       55       88    69
5    Sophia  female       90       66    96
6      Liam       M       55       88    69
7  Isabella  female       66       85    55

多对一替换- 7.1.2 -

可以同时将多个值替换为一个值,同样使用replace()函数来实现,其参数中,被替换值以列表的形式给出。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
df['Sex'].replace(['male','female'],'unknown',inplace=True)
print(df)

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name      Sex  Chinese  English  Math
0      Noah  unknown       90       50    66
1      Emma  unknown       56       56    55
2      Noah  unknown       90       50    66
3    Olivia  unknown       86       87    44
4      Liam  unknown       55       88    69
5    Sophia  unknown       90       66    96
6      Liam  unknown       55       88    69
7  Isabella  unknown       66       85    55

以上示例中,通过列表的形式给出被替换的值,将male和female都替换为unknown。

多对多替换- 7.1.3 -

多对多替换其实就是多个一对一替换,同样使用replace()函数来实现,其参数中,被替换值与替换值以字典的形式给出。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
df['Sex'].replace({'male':'M','female':'F'},inplace=True)
print(df)

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name Sex  Chinese  English  Math
0      Noah   M       90       50    66
1      Emma   F       56       56    55
2      Noah   M       90       50    66
3    Olivia   F       86       87    44
4      Liam   M       55       88    69
5    Sophia   F       90       66    96
6      Liam   M       55       88    69
7  Isabella   F       66       85    55