有没有一种首选的方法来将numpy数组的数据类型固定为int(int64或其他),同时仍将元素内部列出为numpy.NaN
?
特别是,我正在将内部数据结构转换为Pandas DataFrame
。在我们的结构中,我们有仍具有NaN的整数类型的列(但该列的dtype为int)。如果将其设为DataFrame
,似乎将所有内容重铸为float,但我们真的很想成为int。
有什么想法吗?
尝试过的事情:
我尝试from_records()
在pandas.DataFrame
下使用该功能coerce_float=False
,但这并没有帮助。我还尝试使用带有NaN fill_value
的NumPy蒙版数组,该数组也无法正常工作。所有这些导致列数据类型变为浮点型。
此功能已添加到熊猫(从0.24版开始):https : //pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na-support
此时,它需要使用扩展名dtype Int64(大写),而不是默认的dtype int64(小写)。
是否有一种首选方法可以将数组的数据类型固定为(或或其他任何类型),同时仍将数组中的元素列为? 特别是,我正在将内部数据结构转换为熊猫数据帧。在我们的结构中,我们有仍然具有NaN的整型列(但是列的dtype是int)。如果我们将其作为DataFrame,它似乎会将所有内容重铸为浮点数,但我们真的希望成为。 思想? 尝试过的事情: 我尝试在熊猫下使用函数。DataFrame,与,这没有帮助。我还尝试使
问题内容: 有没有一种方法可以将NaN存储在整数的Numpy数组中?我得到: 问题答案: 不,至少在当前版本的NumPy中不能。A是 仅对 float数组的特殊值。 有人在谈论引入一个特殊的位,该位将允许非浮点数组存储实际上与a相对应的内容,但到目前为止(2012/10),这仅仅是个话题。 同时,您可能需要考虑使用该程序包:您可以使用特殊值表示无效值,而不是选择像-99999这样的无效整数。
问题内容: 我对知道如何将熊猫数据框转换为NumPy数组感兴趣。 数据框: 给 我想将其转换为NumPy数组,如下所示: 我怎样才能做到这一点? 作为奖励,是否可以像这样保留dtype? 或类似的? 问题答案: 要将pandas数据框(df)转换为numpy ndarray,请使用以下代码:
问题内容: 我期望得到,但我得到: 问题答案: 并非所有的Nan都是相同的: 因此, 包含,它们是相同的,所以 但包含不相同的: 因此set不会将它们视为相等: 如果您有熊猫系列,请使用它的方法而不是查找唯一值:
问题内容: 你是否知道如何以NumPy数组或python列表的形式获取DataFrame的索引或列? 问题答案: 要获取NumPy数组,应使用以下属性: 这样可以访问数据的存储方式,因此无需进行转换。 注意:此属性也可用于其他许多熊猫的对象。 要将索引作为列表获取,请致电tolist: 同样,对于列。
问题内容: 我有一个基于不同气象站的数据集, 我想删除具有多个NaN的’stationID’组。例如,如果我键入: 然后,我想删除一个组中至少具有一定数量的NaN(例如30个)的组。据我了解,我不能将dropna(thresh = 10)与groupby一起使用: 那么,用熊猫做到这一点的最佳方法是什么? 问题答案: 你可以做的IIUC 例: 因此,这将滤除具有大于1 nan值的组