python判断nan - python矩阵赋值




NumPy或熊猫:保持数组类型为整数,同时具有NaN值 (2)

有没有一种首选的方法来保持numpy数组的数据类型固定为int (或int64或其他),同时仍然有一个列表为numpy.NaN的元素?

特别是,我将内部数据结构转换为Pandas DataFrame。 在我们的结构中,我们有整数类型的列仍然有NaN(但列的dtype是int)。 如果我们将这个数据框设为DataFrame,似乎将所有东西都重新设计为float,但我们真的很想成为int

思考?

试过的东西:

我尝试使用from_records()下的from_records()函数,并且coerce_float=False ,这没有帮助。 我也尝试使用NumPy屏蔽数组,NaN fill_value,这也没有工作。 所有这些导致列数据类型变成浮点数。



如果性能不是主要问题,则可以存储字符串。

df.col = df.col.dropna().apply(lambda x: str(int(x)) )

然后,您可以尽可能多地与NaN混合。 如果您确实需要整数,则取决于您的应用程序,可以使用-101234567890或其他专用值来表示NaN

您也可以临时复制列:一个像你一样,用浮动; 另一个实验,用整数或字符串。 然后在每个合理的地方插入asserts ,检查两者是否同步。 经过足够的测试后,您可以放开浮标。





type-conversion