将 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 实现。要利用此功能:
from pandas.arrays import IntegerArray
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
df['id'] = df['id'].astype('Int64')
通过利用可空整数数据类型, Pandas 可以处理缺失值的整数列,同时保持其预期的数据类型。
以上是如何将带有缺失值的 Pandas 列转换为整数数据类型?的详细内容。更多信息请关注PHP中文网其他相关文章!