Pandas||过滤缺失数据||pd.dropna()函数的用法说明
在数据分析中,我们常常会遇到一些缺失值,这些缺失值可能是由于数据采集、处理等环节出现错误导致的。如果缺失值不处理,将会对后续分析工作造成影响。为了过滤缺失数据,Pandas提供了dropna
函数。
1. dropna() 函数用法说明
dropna()
是一个DataFrame中的函数,它可以删除含有缺失值的行或列。dropna()
的函数原型如下:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数说明:
axis
:默认为0,表示删除行;为1时表示删除列。how
:默认为any
,表示如果任何值为缺失值,则行或列被删除;如果为all
,则只有在所有值都为缺失值时,才删除行或列。thresh
:要求非缺失值的最小数量。subset
:可以通过列标签或行标签列表来指定应该进行删除的行或列。inplace
:默认为False
,表示返回一个新的数据对象;为True
时,将在原始数据对象上直接进行删除操作。
2. dropna() 函数示例说明
接下来,我将举两个简单的例子来说明dropna()
函数的用法。
示例1:删除缺失值
首先,我们创建一个包含缺失值的DataFrame:
import pandas as pd
import numpy as np
data = {'Name': ['Tom', 'Jane', 'Jack', 'Lisa', 'Mike'],
'Age': [np.NaN, 26, 24, 23, np.NaN],
'Gender': ['Male', 'Female', 'Male', np.NaN, 'Male'],
'Score': [80, 78, np.NaN, 88, 90]}
df = pd.DataFrame(data)
此时,我们可以通过isnull()
函数来查看哪些行或列包含缺失值:
print(df.isnull())
输出:
Name Age Gender Score
0 False True False False
1 False False False False
2 False False False True
3 False False True False
4 False True False False
我们可以使用dropna()
函数来删除含有缺失值的行,删除的是行而不是列。
new_df = df.dropna()
其中,new_df
是删掉缺失值后的新的数据对象。我们可以使用print()
函数来查看,删去缺失值后的数据对象。
print(new_df)
输出:
Name Age Gender Score
1 Jane 26.0 Female 78.0
如上所示,只有Jane这一行数据的完整,因此其它含有缺失值的行被删除了。
示例2:删除整列缺失值
与上面相反,我们可以使用dropna()
函数来删除一个含有缺失值的整列。
我们修改上面的缺失值数据对象,加入一个完整的列。
data = {'Name': ['Tom', 'Jane', 'Jack', 'Lisa', 'Mike'],
'Age': [np.NaN, 26, 24, 23, np.NaN],
'Gender': ['Male', 'Female', 'Male', np.NaN, 'Male'],
'Score': [80, 78, np.NaN, 88, 90],
'Class': ['One', 'One', 'Two', 'Two', 'Two']}
df = pd.DataFrame(data)
修改后,数据对象框架如下:
Name Age Gender Score Class
0 Tom NaN Male 80.0 One
1 Jane 26.0 Female 78.0 One
2 Jack 24.0 Male NaN Two
3 Lisa 23.0 NaN 88.0 Two
4 Mike NaN Male 90.0 Two
可以通过isnull()
函数来查看哪些列包含缺失值:
print(df.isnull().sum())
输出:
Name 0
Age 2
Gender 1
Score 1
Class 0
dtype: int64
我们可以使用dropna()
函数来删除 Score
列缺失数据。
new_df = df.dropna(axis=1, how='any', thresh=None, subset=None, inplace=False)
此时,new_df
就是删除Score
列缺失数据后新的数据对象。
print(new_df)
输出:
Name Class
0 Tom One
1 Jane One
2 Jack Two
3 Lisa Two
4 Mike Two
如上所示,Score
列被删除了。
至此,本文就讲解了Pandas中dropna()
函数的具体用法,希望对大家的学习有帮助。