Python Pandas中的NaN

在数据分析和处理过程中,经常会遇到缺失值的情况。在Python的Pandas库中,NaN(Not a Number)被用来表示缺失值。在本文中,我们将介绍如何处理Pandas中的NaN值,包括如何检测、替换和删除缺失值。
创建包含NaN的DataFrame
首先,让我们创建一个包含NaN值的DataFrame。我们可以使用Pandas的DataFrame构造函数来创建一个简单的DataFrame,并手动将其中的某些值设为NaN。
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4],
        'B': ['deepinout.com', 'hello', 'world', np.nan]}
df = pd.DataFrame(data)
print(df)
运行上述代码后,我们将得到以下的DataFrame:
     A              B
0  1.0  deepinout.com
1  2.0          hello
2  NaN          world
3  4.0            NaN
检测NaN值
在处理数据时,首先需要检测数据中是否包含NaN值。Pandas提供了isnull()和notnull()函数来帮助我们检测NaN值。
print(df.isnull())
运行结果将显示哪些值是NaN:
       A      B
0  False  False
1  False  False
2   True  False
3  False   True
我们还可以使用notnull()函数来查看哪些值不是NaN:
print(df.notnull())
运行结果将显示哪些值不是NaN:
       A      B
0   True   True
1   True   True
2  False   True
3   True  False
替换NaN值
有时候,我们需要将NaN值替换为特定的值。Pandas提供了fillna()函数来替换NaN值。
df_filled = df.fillna('missing')
print(df_filled)
运行结果将替换所有NaN值为指定值:
         A              B
0        1  deepinout.com
1        2          hello
2  missing          world
3        4        missing
删除包含NaN值的行
在某些情况下,我们可能希望删除包含NaN值的行。Pandas提供了dropna()函数来删除包含NaN值的行。
df_dropped = df.dropna()
print(df_dropped)
运行结果将删除包含NaN值的行:
     A          B
0  1.0  deepinout.com
1  2.0      hello
使用插值填充NaN值
有时候,我们可能希望使用插值的方式填充NaN值,使数据更加连续。Pandas提供了interpolate()函数来进行插值填充。
df_interpolated = df.interpolate()
print(df_interpolated)
运行结果将使用插值方式填充NaN值:
     A              B
0  1.0  deepinout.com
1  2.0          hello
2  3.0          world
3  4.0        world
通过上述示例,我们了解了在Python Pandas中如何处理NaN值,包括检测、替换、删除和插值填充。在数据分析和处理过程中,灵活运用这些方法能够更好地处理缺失值,提高数据的质量和准确性。
极客笔记