这是我第一次问StackOverflow,所以如果我说奇怪的话,请让我平稳地知道。
我想预测此数据集中的准确性。 但是我不知道如何使用pandas或numpy接受或删除nan或null值,以及如何在此模型中获得正确的准确性和损失。
我尝试在熊猫中使用isnull
函数,但是没有用。
我认为之所以没有计算准确度和损失值的原因是,设置为X
的值属于空值。
所以我想知道如何排除nan或null值。
如果您遇到类似情况或解决了此问题,请让我知道如何解决此问题。谢谢!
答案 0 :(得分:0)
您说过,您不知道如何删除pandas或numpy中的nan值,但是有时我们不删除它们,而是替换它们。例如,您可以为某个要素的非值设置零,或者可以计算并使用该要素的平均值。
要删除具有nan值的行,您可以这样做
x = np.array([[1,2,3,4],
[2,3,np.nan,5],
[np.nan,5,2,3]])
x = x[~np.isnan(x).any(axis=1)]
输出:
array([[1., 2., 3., 4.]])
或者将numpy数组替换为Nan(例如0)
x[np.isnan(x)] = 0
输出
x:
array([[1., 2., 3., 4.],
[2., 3., 0., 5.],
[0., 5., 2., 3.]])
在pandas数据框中,您可以删除带有Nan元素的特定列
x = np.array([[np.nan,2,3,4],
[2,3,np.nan,5],
[3,5,2,3]])
xpd = pd.DataFrame(x, columns=["A","B","C","D"])
xpd = xpd[pd.notnull(xpd['A'])]
输出
xpd
A B C D
1 2.0 3.0 NaN 5.0
2 3.0 5.0 2.0 3.0
或删除包含Nan元素的行
xpd:
A B C D
2 3.0 5.0 2.0 3.0
您也可以在padas数据框中用其他内容替换nan值
xpd = xpd.replace([np.nan], 0)
输出
xpd:
A B C D
0 0.0 2.0 3.0 4.0
1 2.0 3.0 0.0 5.0
2 3.0 5.0 2.0 3.0