Pandas数据帧列数据类型已更改为Null Mysql列从Int到Float的值

时间:2017-12-13 07:26:52

标签: mysql python-2.7 pandas

我通过读取Mysql表使用python panadas创建数据帧。 我有几列INT数据类型,但其中包含null个值。当我创建数据框时,所有这些列都是'数据类型更改为float,null值更改为NaN

如何保持相同的格式。

我试着这样做。

df是初始数据框,之后是

df2 = df.astype(object).where(pd.notnull(df), None)

但是有些列的值会变为小数。

1 个答案:

答案 0 :(得分:0)

这里的问题是pandas会将列检测为int,但由于存在NULL值,因此将这些值设置为NaN。 pandas / numpy中的NaN值被输入为float,因此整个列将被转换为float。 如果要重新转换为int,则应该转换非NaN值,如下所示:

df.ix[~pd.isnull(df["column"]),"column"] = df.loc[~pd.isnull(df["column"])]["column"].astype(int)