📜  特定列 pandas 中的 dropna - Python (1)

📅  最后修改于: 2023-12-03 14:56:13.468000             🧑  作者: Mango

特定列Pandas中的dropna

dropna是一个用于删除DataFrame或Series中缺失值的Pandas函数。但是,有时您可能只想删除特定列中缺失值的行。在这种情况下,您可以使用dropna函数中的subset参数,指定要在哪些列中查找空值。在这个Markdown中,我们将介绍如何使用dropna函数来删除有缺失值的特定列。

基本语法

下面是使用Pandas dropna函数删除特定列中的空值的基本语法:

DataFrame.dropna(subset=[column])

其中:

  • DataFrame是要删除空值的数据框。
  • subset参数指定要查找空值的列。它采取一个列表,其中的每个元素都是要搜索的列。
  • column是要删除空值的特定列。可以一次指定多列。

dropna函数可以具有其他参数,如axishow等,这些参数可以有助于从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包含四个列:NameAgeGenderMajor。在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参数,并将其设置为要查找空值的列的列表。