猿问

将包含NaN的Pandas列转换为dtype`int`

将包含NaN的Pandas列转换为dtype`int` 

我将.csv文件中的数据读取到Pandas数据帧,如下所示。对于其中一列,即id我想将列类型指定为int。问题是id系列缺少/空值。

当我尝试id在读取.csv时将列转换为整数时,我得到:

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

或者,我尝试在阅读后转换列类型,如下所示,但这次我得到:

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

我怎么解决这个问题?


开心每一天1111
浏览 4293回答 3
3回答

绝地无双

在整数列中缺少NaN rep是熊猫“陷阱”。通常的解决方法是简单地使用浮动。

汪汪一只猫

在版本0.24。+ pandas已经获得了保存具有缺失值的整数dtypes的能力。可以为空的整数数据类型。Pandas可以表示可能缺少值的整数数据arrays.IntegerArray。这是在pandas中实现的扩展类型。它不是整数的默认dtype,也不会被推断; 你必须明确地将dtype传递给array()或Series:arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())pd.Series(arr)0      11      22    NaNdtype: Int64
随时随地看视频慕课网APP

相关分类

Python
我要回答