Python 如何防止标准化公式产生NaN值?

Python 如何防止标准化公式产生NaN值?,python,pandas,numpy,normalization,Python,Pandas,Numpy,Normalization,尝试使用以下公式规范化我的数据时: normalized_df=(df-df.mean())/df.std() 有些值变为NaN。我认为它变为NaN的唯一原因是标准偏差等于零(除以0)。这不太可能,因为这意味着所有值必须具有相同的值 为什么会发生这种情况?如何避免它? 我发现了一个类似的问题,表明它可能是一个bug 无任何额外输入std将给出各列的标准偏差。因此,首先要检查的是要得到的列的外观 它可能有不止一个原因。或者,就像你说的,因为他们的性病是0。或者因为任何列条目都是NaN 所以,要进

尝试使用以下公式规范化我的数据时:

normalized_df=(df-df.mean())/df.std()
有些值变为NaN。我认为它变为NaN的唯一原因是标准偏差等于零(除以0)。这不太可能,因为这意味着所有值必须具有相同的值

为什么会发生这种情况?如何避免它?


我发现了一个类似的问题,表明它可能是一个bug

无任何额外输入
std
将给出各列的标准偏差。因此,首先要检查的是要得到的列的外观

它可能有不止一个原因。或者,就像你说的,因为他们的性病是0。或者因为任何列条目都是NaN


所以,要进行bug搜索,请查看特定专栏中的内容。明确计算自己的平均值和标准差,看看发生了什么。并检查列中的任何条目是否已为NaN。我无法想象numpy bug已经有4年多没有被修复了。

你不应该在列中应用这个错误吗?这是
std的默认设置
如果你没有明确指定轴你是对的,错误是我有一个只有两个1和数千个0的列。因此,当我应用“删除异常值”函数时,所有列都变成了0。好主意!