pandas replace替换nan

pandas replace替换nan

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方法可以帮助我们快速对数据进行替换,提高数据处理的效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程