pandas 是 Python 中一款用于数据处理和分析的优秀库。而在数据处理过程中,缺失值是一个经常被遇到的问题。在 pandas 中,可以使用 pandasNaN 来高效地处理缺失值。
一、创建pandasNaN对象
import pandas as pd import numpy as np df = pd.DataFrame({'A': [1, 2, np.nan, 4]}) print(df)
以上代码会输出:
A 0 1.0 1 2.0 2 NaN 3 4.0
可以看到,数据框中存在一个 NaN 值,即一个缺失值。
在 pandas 中,可以通过 pd.isna() 和 pd.notna() 函数来进行缺失值的判断。
pd.isna(df)
输出:
A 0 False 1 False 2 True 3 False
pd.notna(df)
输出:
A 0 True 1 True 2 False 3 True
二、处理缺失值
1. 删除缺失值
在 pandas 中使用 dropna() 函数可以直接删除缺失值所在的行或列。
df.dropna(axis=0) # 删除缺失值所在的行 df.dropna(axis=1) # 删除缺失值所在的列
如果想要对删除操作进行持久化,可以使用 inplace=True 参数。
2. 填充缺失值
虽然删除缺失值是一种处理方式,但是这样可能会导致其他有用的信息的丢失。更为常用的方式是填充缺失值。在 pandas 中,使用 fillna() 函数可以对缺失值进行填充。
df.fillna(value=0) # 将缺失值填充为 0 df.fillna(method='ffill') # 将缺失值向前填充 df.fillna(method='bfill') # 将缺失值向后填充
三、数据替代
在处理数据时,有时候不需要在原数据上进行缺失值的填充,而是要将操作后的数据置换到原数据的位置。
df.replace(to_replace=np.nan, value=-1)
以上代码将数据框中的 NaN 值看作缺失值,将其替换为 -1。replace() 函数还可以通过正则表达式等方式进行替换。
四、NaN对象的比较
在 pandasNaN 中,np.nan 不等于任何值,包括它自己。所以可以使用 np.isnan() 函数来判断数据是否为 NaN。
a = np.nan np.isnan(a) # True
五、小结
pandasNaN 是一个十分有用的数据处理工具,可以用于缺失值的删除、填充和替换等操作。在实际应用中,需要根据实际情况选择不同的操作方式。