python - 返回 inf : how can I solve this? 的 pandas DataFrame 列的 mean()

标签 python numpy pandas precision

我正在尝试实现一些机器学习算法,但在将数据放在一起时遇到了一些困难。

在下面的例子中,我从 UCI 加载了一个示例数据集,删除了缺少数据的行(感谢上一个问题的帮助),现在我想尝试规范化数据。

对于许多数据集,我只是使用:

valores = (valores - valores.mean()) / (valores.std())

但对于这个特定的数据集,上述方法不起作用。问题在于 mean 函数正在返回 inf,这可能是由于精度问题。请参见下面的示例:

bcw = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', header=None)

for col in bcw.columns:
    if bcw[col].dtype != 'int64':
        print "Removendo possivel '?' na coluna %s..." % col
        bcw = bcw[bcw[col] != '?']

valores = bcw.iloc[:,1:10]
#mean return inf
print  valores.iloc[:,5].mean()

我的问题是如何处理这个问题。看来我需要更改此列的类型,但我不知道该怎么做。

最佳答案

不太熟悉 pandas 但如果你转换成一个 numpy 数组它可以工作,试试

np.asarray(valores.iloc[:,5], dtype=np.float).mean()

关于python - 返回 inf : how can I solve this? 的 pandas DataFrame 列的 mean(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782594/

相关文章:

Python - 查找第一个和最后一个白色像素坐标

python - Python Pandas 中的日期时间 strptime : what's wrong?

python - 用字典删除重复行

Python pandas - 根据集体 NaN 计数删除组

Python 括号子字符串不起作用,为什么?

python - 计算在另一列中找到的字符串(以任何顺序)的频率,并在新列中返回结果

python - Numpy 最快的 3D 到 2D 投影

python - 以二维特征数组作为输入的高斯过程 - scikit-learn

python - 使用 mplfinance/matplotlib 时可能出现内存泄漏。如何解决?

python - 将 Mnist 数组数据转换为每个像素值的 one-hot 编码数组