首页  >  文章  >  后端开发  >  如何将带有缺失值的 Pandas 列转换为整数数据类型?

如何将带有缺失值的 Pandas 列转换为整数数据类型?

Patricia Arquette
Patricia Arquette原创
2024-11-22 02:35:16324浏览

How Can I Convert Pandas Columns with Missing Values to Integer Data Types?

将 Pandas 缺少值的列转换为整数

处理 Pandas 数据帧时,通常需要指定某些列的数据类型。但是,如果列包含缺失值或空值 (NaN),将其转换为整数类型(例如“int”)可能会带来挑战。

遇到的问题:

为了演示这个问题,我们假设我们有一个从 CSV 文件读取的 Pandas 数据帧,其中包含一个名为“id”的列,其中包含 NaN。但是,我们需要将 'id' 列指定为整数类型。

错误消息:

尝试直接将 'id' 列转换为整数时在读取 CSV 文件时,我们遇到以下错误:

df= pd.read_csv("data.csv", dtype={'id': int})
error: Integer column has NA values

或者,如果我们在读取后尝试转换列类型CSV 文件,我们得到:

df= pd.read_csv("data.csv")
df[['id']] = df[['id']].astype(int)
error: Cannot convert NA to integer

解决方案:

在 Pandas 版本 0.24 及以上版本中,可以使用可空整数数据类型来表示缺失值的整数数据,用 IntegerArray 实现。要利用此功能:

  1. 从 Pandas 导入 IntegerArray 类。
from pandas.arrays import IntegerArray
  1. 创建具有所需数据类型的 IntegerArray 对象,在本例中, Int64.
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
  1. 使用 astype() 将 'id' 列转换为 IntegerArray。
df['id'] = df['id'].astype('Int64')

通过利用可空整数数据类型, Pandas 可以处理缺失值的整数列,同时保持其预期的数据类型。

以上是如何将带有缺失值的 Pandas 列转换为整数数据类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn