NumPy或Pandas。保持数组类型为整数,同时有一个 "inf "值。

问题描述 投票:0回答:1

现在,我知道新版本的pandas有一个特殊的数据类型扩展 "Int64",允许缺失值与整数共存于同一列中。这个 题目中也有解释。然而,我想有一个整数列,也允许无穷大的值。但是,当我试图添加 float('inf') 到具有'Int64'类型的列中,我得到一个错误。"不能安全地将非等价的float64转换为int64".

我之所以要在我的列中取无穷大的值,是因为我有一列整数距离,虽然其中有些距离是未知的,但已知这样的距离超过了,比如3000米。而当我计算这一列的中位数时,就会有不同的结果。例如,一个阵列[1,5,10,20,50,nan,nan,nan]的中位数是10,因为NaN值被忽略了。但是一个数组[1,5,10,20,50,inf,inf,nan]的中位数是20,因为inf值被认为大于50。

有什么方法可以让整数与'inf'值兼容吗?还是我必须用浮点数来解决?

python pandas numpy type-conversion int
1个回答
0
投票

Math inf应该在你的情况下工作 -

import math
import statistics as stat


test = math.inf
a = [1, 5, 10, 20, 50, test, test, float("nan")] 
print(stat.median(a))
© www.soinside.com 2019 - 2024. All rights reserved.