📅  最后修改于: 2023-12-03 14:56:13.468000             🧑  作者: Mango
dropna
是一个用于删除DataFrame或Series中缺失值的Pandas函数。但是,有时您可能只想删除特定列中缺失值的行。在这种情况下,您可以使用dropna
函数中的subset
参数,指定要在哪些列中查找空值。在这个Markdown中,我们将介绍如何使用dropna
函数来删除有缺失值的特定列。
下面是使用Pandas dropna
函数删除特定列中的空值的基本语法:
DataFrame.dropna(subset=[column])
其中:
DataFrame
是要删除空值的数据框。subset
参数指定要查找空值的列。它采取一个列表,其中的每个元素都是要搜索的列。column
是要删除空值的特定列。可以一次指定多列。dropna
函数可以具有其他参数,如axis
,how
等,这些参数可以有助于从DataFrame或Series中删除空值。但是,这些参数不是本文的主题,我们将在这里只关注在特定列中使用dropna
函数。
为了演示如何使用dropna
函数删除特定列中的空值,我们将使用以下示例DataFrame。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Esther', 'Frank', 'Grace', 'Henry'],
'Age': [27, 31, 22, 25, 28, 29, 32, 26],
'Gender': ['F', 'M', 'F', 'M', 'F', 'M', 'F', 'M'],
'Major': [pd.NA, 'Computer Science', 'History', pd.NA, 'Math', 'Psychology', 'English', pd.NA]}
df = pd.DataFrame(data)
这个DataFrame包含四个列:Name
、Age
、Gender
和Major
。在Major
列中,我们故意留下了一些缺失值以演示如何删除特定列中的空值。
首先,看看DataFrame中的缺失值:
df.isnull().sum()
输出:
Name 0
Age 0
Gender 0
Major 3
dtype: int64
Major
列中有3行缺失值。
现在,我们将删除所有在Major
列中有缺失值的行:
df.dropna(subset=['Major'], inplace=True)
在这个语句中,我们将subset
参数设置为['Major']
,这意味着我们只删除特定列中有缺失值的行。 此外,我们将inplace
参数设置为True
,这意味着更改会反映在原始DataFrame中。
现在,看看删除缺失值后的DataFrame:
df
输出:
Name Age Gender Major
1 Bob 31 M Computer Science
2 Charlie 22 F History
4 Esther 28 F Math
5 Frank 29 M Psychology
6 Grace 32 F English
可以看到,DataFrame中不再包含在Major
列中有缺失值的行。
dropna
函数是一个用于删除DataFrame或Series中缺失值的有用函数。在某些情况下,您可能只想删除特定列中的缺失值。在这种情况下,您可以使用dropna
函数中的subset
参数,并将其设置为要查找空值的列的列表。