我通过读取Mysql表使用python panadas创建数据帧。
我有几列INT
数据类型,但其中包含null
个值。当我创建数据框时,所有这些列都是'数据类型更改为float,null
值更改为NaN
。
如何保持相同的格式。
我试着这样做。
df
是初始数据框,之后是
df2 = df.astype(object).where(pd.notnull(df), None)
但是有些列的值会变为小数。
答案 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)