当前位置: 首页 > 面试题库 >

Python-NumPy或Pandas:具有NaN值时,将数组类型保持为整数

萧琛
2023-03-14
问题内容

有没有一种首选的方法来将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值的组