pandas replace替换nan
在进行数据处理时,经常会遇到NaN值(Not a Number)或者空值需要进行替换的情况。pandas提供了replace方法来帮助我们快速替换DataFrame中的NaN值。接下来,我们将详细介绍如何使用pandas的replace方法来替换NaN值。
使用replace替换NaN值
示例1:替换单个值
假设我们有以下DataFrame:
import pandas as pd
data = {'A': [1, 2, pd.np.nan, 4, 5],
'B': ['geek-docs.com', pd.np.nan, 'geek-docs.com', 'geek-docs.com', 'geek-docs.com']}
df = pd.DataFrame(data)
print(df)
运行结果如下:
A B
0 1.0 geek-docs.com
1 2.0 NaN
2 NaN geek-docs.com
3 4.0 geek-docs.com
4 5.0 geek-docs.com
现在我们想将DataFrame中的NaN值替换为0,可以使用replace方法:
df.replace(pd.np.nan, 0, inplace=True)
print(df)
运行结果如下:
A B
0 1.0 geek-docs.com
1 2.0 geek-docs.com
2 0.0 geek-docs.com
3 4.0 geek-docs.com
4 5.0 geek-docs.com
可以看到,NaN值已经被成功替换为0。
示例2:使用字典替换值
除了替换单个值外,我们还可以使用字典来指定不同的替换值。假设我们想将DataFrame中的’geek-docs.com’替换为’www.geek-docs.com’,可以使用replace方法:
df.replace({'B': {'geek-docs.com': 'www.geek-docs.com'}}, inplace=True)
print(df)
运行结果如下:
A B
0 1.0 www.geek-docs.com
1 2.0 NaN
2 0.0 www.geek-docs.com
3 4.0 www.geek-docs.com
4 5.0 www.geek-docs.com
可以看到,’geek-docs.com’成功被替换为’www.geek-docs.com’。
示例3:使用正则表达式替换值
除了使用固定的值或者字典来替换值外,我们还可以使用正则表达式来进行替换。假设我们想将DataFrame中包含’geek’的值替换为’geek-docs.com’,可以使用replace方法:
df.replace(to_replace=r'geek', value='geek-docs.com', regex=True, inplace=True)
print(df)
运行结果如下:
A B
0 1.0 geek-docs.com-docs.com
1 2.0 NaN
2 0.0 geek-docs.com-docs.com
3 4.0 geek-docs.com-docs.com
4 5.0 geek-docs.com-docs.com
可以看到,包含’geek’的值已经被成功替换为’geek-docs.com’。
总结
通过本文的介绍,我们学习了如何使用pandas的replace方法来替换DataFrame中的NaN值。replace方法可以帮助我们快速对数据进行替换,提高数据处理的效率。