📅  最后修改于: 2023-12-03 15:00:32.321000             🧑  作者: Mango
dropna()
函数是Pandas库中的一个非常实用的函数,它的作用是用于删除缺失值所在的行或列。
dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数解释:
axis
:默认为0,表示删除缺失值所在的行;如果为1,则表示删除缺失值所在的列。
how
:删除缺失值的方式,可以选择以下两种选项之一:
thresh
:int类型或None,表示每行或列最少含有的非缺失值;默认为None,即不设置阈值。
subset
:list类型或None,表示需要考虑的列,如果为None,则删除所有缺失值所在的行或列。
inplace
:默认为False,表示不改变原数据,而是返回一个新的数据;如果为True,则在原数据上进行操作。
下面通过一个简单的示例来演示如何使用dropna()
函数。
首先,我们生成一个示例数据集:
import pandas as pd
data = {'name': ['Mike', 'Jim', 'Tom', 'Mary', 'Emily'],
'age': [20, None, 22, 25, None],
'gender': ['M', 'M', None, 'F', 'F']}
df = pd.DataFrame(data)
print(df)
输出结果:
name age gender
0 Mike 20.0 M
1 Jim NaN M
2 Tom 22.0 None
3 Mary 25.0 F
4 Emily NaN F
然后,我们使用dropna()
函数来删除缺失值所在的行:
new_df = df.dropna()
print(new_df)
输出结果:
name age gender
0 Mike 20.0 M
3 Mary 25.0 F
我们可以看到,缺失值所在的行已经被删除了。
如果我们将axis
参数设置为1,则会删除缺失值所在的列:
new_df = df.dropna(axis=1)
print(new_df)
输出结果:
name
0 Mike
1 Jim
2 Tom
3 Mary
4 Emily
我们可以看到,缺失值所在的列已经被删除了。
如果我们将thresh
参数设置为2,则只删除缺失值数量超过2个的行:
new_df = df.dropna(thresh=2)
print(new_df)
输出结果:
name age gender
0 Mike 20.0 M
2 Tom 22.0 None
3 Mary 25.0 F
我们可以看到,因为第二行缺失值数量为2,所以被删除了。
如果我们将subset
参数设置为['age'],则只考虑'age'列中的缺失值:
new_df = df.dropna(subset=['age'])
print(new_df)
输出结果:
name age gender
0 Mike 20.0 M
2 Tom 22.0 None
3 Mary 25.0 F
我们可以看到,只有'age'列中的缺失值所在的行被删除了,'gender'列中的缺失值所在的行未被删除。
dropna()
函数是Pandas库中非常实用的一个函数,它能够帮助我们删除缺失值所在的行或列,具有方便、快捷的特点,可以使数据处理更加简便高效。使用本函数需要注意参数的含义和设置,才能达到我们预期的效果。