处理可空整数

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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

虚拟机使用提示

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

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

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

创建可空整数数组

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中、执行操作以及处理缺失值。通过使用可空整数数据类型,你可以更高效地处理包含缺失值的整数数据。