聊聊Python dropna()和notnull()的用法区别
引言
在使用Pandas进行数据处理和分析时,我们常常需要过滤掉数据中带有缺失值的行或列。在Pandas中,我们通常会使用 dropna() 和 notnull() 这两个方法来实现这个目的。本篇文章将会讲解这两个方法的用法,并且对它们的区别做出详细的解析。
dropna()方法
什么是dropna()方法
dropna() 方法是Pandas DataFrame对象中的一个方法,它用于移除带有缺失值的行或列。如果 DataFrame 中的某行或某列包含缺失值,这行或列将被移除。
dropna()方法的用法
DataFrame 的 dropna() 方法的语法如下:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
axis
- 需要移除的轴的方向,0表示行,1表示列,默认为0。how
- 如果出现空缺值,用于确定是否删除该行或列的参数。可选值包括any
(只要存在缺失值就删除)和all
(所有值都为缺失值时才删除),默认是any
。thresh
- 指定在删除行和列之前所需的非缺失值数。subset
- 可以指定包含缺失数据的列或行以进行删除操作。inplace
- 是否在原DataFrame上直接进行修改,默认为False。
以下是使用 dropna() 方法删除 DataFrame 中含有缺失值的行或列的示例:
import pandas as pd
import numpy as np
data = {
'name': ['Tom', 'Jerry', 'Mike', 'Lily', 'Jack'],
'age': [24, np.nan, 21, 28, 22],
'gender': ['M', 'M', 'F', np.nan, 'M']
}
df = pd.DataFrame(data)
# 移除含有缺失值的行
df.dropna(inplace=True)
print(df)
# 移除含有缺失值的列
df.dropna(axis=1, inplace=True)
print(df)
输出结果:
name age gender
0 Tom 24.0 M
2 Mike 21.0 F
4 Jack 22.0 M
name
0 Tom
2 Mike
4 Jack
notnull() 方法
什么是notnull()方法
notnull() 方法是DataFrame对象中的一个方法,它用于返回布尔型Series或DataFrame,表示哪些值不是空的值。
notnull()方法的用法
DataFrame 的 notnull() 方法的语法如下:
DataFrame.notnull()
以下是使用 notnull() 方法得到 DataFrame 中非缺失值的示例:
import pandas as pd
import numpy as np
data = {
'name': ['Tom', 'Jerry', 'Mike', 'Lily', 'Jack'],
'age': [24, np.nan, 21, 28, 22],
'gender': ['M', 'M', 'F', np.nan, 'M']
}
df = pd.DataFrame(data)
print(df.notnull())
输出结果:
name age gender
0 True True True
1 True False True
2 True True True
3 True False False
4 True True True
dropna()方法和notnull()方法的区别
dropna() 和 notnull() 方法都可以用于过滤缺失值,但它们实现的方式不同:
- dropna() 方法是通过删除含有缺失值的行或列来实现的。
- notnull() 方法是通过返回一个 Series 或 DataFrame 来实现的,该对象中的每一个元素都是布尔值,用来指示其对应的元素是否是缺失值。
结论
在 Pandas 数据处理过程中,过滤掉缺失值是一项必要的任务。本篇文章对这个问题进行了解释并演示了两个方法: dropna() 和 notnull()。这些方法可以让你更好地掌握和使用 Pandas 中的数据过滤功能,提高数据分析效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:聊聊python dropna()和notnull()的用法区别 - Python技术站