python - 将包含NaN的Pandas列转换为dtype`int`
我将.csv文件中的数据读取到Pandas数据帧,如下所示。 对于其中一列,即id,我想将列类型指定为int.问题是id系列有缺失值/空值。
当我尝试在读取.csv时将id列转换为整数时,我得到:
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
我怎么解决这个问题?
Rhubarb asked 2019-07-25T20:55:59Z
11个解决方案
113 votes
在整数列中缺少NaN rep是熊猫“陷阱”。
通常的解决方法是简单地使用浮动。
Andy Hayden answered 2019-07-25T20:56:16Z
19 votes
我的用例是在加载到数据库表之前重新整理数据:
df[col] = df[col].fillna(-1)
df[col] = df[col].astype(int)
df[col] = df[col].astype(str)
df[col]