Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 当我记录转换列时,我得到了NaN,我应该用0替换它们吗?_Pandas_Normalization_Logarithm - Fatal编程技术网

Pandas 当我记录转换列时,我得到了NaN,我应该用0替换它们吗?

Pandas 当我记录转换列时,我得到了NaN,我应该用0替换它们吗?,pandas,normalization,logarithm,Pandas,Normalization,Logarithm,我找不到类似的问题。但是我有一个df,其中一些列是高度倾斜的。然后我计划对这些列进行日志转换,然后进行标准化。然而,当我记录转换时,我得到了NAN,我应该用0替换它们吗;s log_train[skew_cols]=np.log2(featuresdf[skew_cols] 我得到的错误是: RuntimeWarning: invalid value encountered in log2 This is separate from the ipykernel package so we

我找不到类似的问题。但是我有一个df,其中一些列是高度倾斜的。然后我计划对这些列进行日志转换,然后进行标准化。然而,当我记录转换时,我得到了NAN,我应该用0替换它们吗;s

log_train[skew_cols]=np.log2(featuresdf[skew_cols]
我得到的错误是:

RuntimeWarning: invalid value encountered in log2
  This is separate from the ipykernel package so we can avoid doing imports until

不确定我做错了什么

您不应该用0替换,因为np.log(1)等于0。因此,1和0在日志数据中都将是0

相反,只需在日志之前+1您的数据。因此log2(1)变为0,log2(2)(原来是1)仍然是1,那么log2(3)(原来是2)现在是1.58)

因此,代码应该是:

log_train[skew_cols]=np.log2(featuresdf[skew_cols]+1)

另一个选项是使用其他可以处理0的缩放方法,例如平方根(np.sqrt)

您不应该用0替换,因为np.log(1)等于0。因此,1和0在日志数据中都将是0

相反,只需在日志之前+1您的数据。因此log2(1)变为0,log2(2)(原来是1)仍然是1,那么log2(3)(原来是2)现在是1.58)

因此,代码应该是:

log_train[skew_cols]=np.log2(featuresdf[skew_cols]+1)

另一个选项是使用其他可以处理0的缩放方法,例如平方根(np.sqrt)

非常感谢。这些柱子在我对它们进行对数变换后仍然是倾斜的。我想对这些列进行日志转换的全部目的是为逻辑回归做好准备。没问题,请记住,对于逻辑回归,误差项(残差)不需要正态分布(就像线性回归一样)。所以这可能不是必需的。这让我省去了很多痛苦,但它们不需要缩放吗?取决于你想用模型做什么。有时,按比例衡量的指标可能变得更难解释。记住,赔率比率是x增加1个单位,结果的可能性是y的倍。如果对变量进行缩放,模型的可解释性可能会变得更加困难。另外,如果这个答案确实回答了你的问题,那么接受这个答案也很好。非常感谢。这些柱子在我对它们进行对数变换后仍然是倾斜的。我想对这些列进行日志转换的全部目的是为逻辑回归做好准备。没问题,请记住,对于逻辑回归,误差项(残差)不需要正态分布(就像线性回归一样)。所以这可能不是必需的。这让我省去了很多痛苦,但它们不需要缩放吗?取决于你想用模型做什么。有时,按比例衡量的指标可能变得更难解释。记住,赔率比率是x增加1个单位,结果的可能性是y的倍。如果对变量进行缩放,模型的可解释性可能会变得更加困难。另外,如果这个答案确实回答了你的问题,那么最好接受这个答案。