处理可空整数

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将探索如何在 pandas 中使用可空整数数据类型,这是处理可能包含缺失值的整数数据的有效方法。我们将学习如何使用这种数据类型构造数组、执行操作以及有效处理缺失值。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 100%。获得了学习者 100% 的好评率。

创建可空整数数组

Pandas 提供了IntegerArray类来创建可空整数数组。让我们从创建一个IntegerArray开始。

## 导入必要的库
import pandas as pd
import numpy as np

## 创建一个包含缺失值的 IntegerArray
arr = pd.array([1, 2, None], dtype=pd.Int64Dtype())
## 输出:<IntegerArray>
## [1, 2, <NA>]
## 长度:3, 数据类型:Int64

在创建数组时,你也可以使用字符串别名“Int64”来指定数据类型。所有类似 NA 的值都会被替换为pandas.NA

## 使用“Int64”字符串别名创建一个 IntegerArray
arr = pd.array([1, 2, np.nan], dtype="Int64")
## 输出:<IntegerArray>
## [1, 2, <NA>]
## 长度:3, 数据类型:Int64

将 IntegerArray 存储在 DataFrame 或 Series 中

一旦你创建了一个IntegerArray,就可以将其存储在DataFrameSeries中。让我们从创建的IntegerArray创建一个Series

## 从 IntegerArray 创建一个 Series
series = pd.Series(arr)

对可空整数数组执行操作

你可以对可空整数数组执行各种操作,例如算术运算、比较和切片。

## 创建一个具有可空整数类型的 Series
s = pd.Series([1, 2, None], dtype="Int64")

## 执行算术运算
s_plus_one = s + 1 ## 将 1 添加到 Series 中的每个元素

## 执行比较
comparison = s == 1 ## 检查 Series 中的每个元素是否等于 1

## 执行切片操作
sliced = s.iloc[1:3] ## 选择 Series 中的第二个和第三个元素

使用 pandas.NA 处理缺失值

IntegerArray 类使用 pandas.NA 作为其标量缺失值。当你切片一个缺失的单个元素时,它将返回 pandas.NA

## 创建一个带有缺失值的 IntegerArray
a = pd.array([1, None], dtype="Int64")

## 切片第二个元素,该元素是一个缺失值
missing_value = a[1]
## 输出:<NA>

总结

本实验展示了如何在 pandas 中处理可空整数数据类型,包括如何构建数组、将它们存储在DataFrameSeries中、执行操作以及处理缺失值。通过使用可空整数数据类型,你可以更高效地处理包含缺失值的整数数据。