用0有效地替换h2o数据帧中的所有NULL值

时间:2017-06-13 23:55:38

标签: python if-statement null h2o

我正在寻找一种简单有效的方法来替换H2O Python数据框中的所有特定值。在这种情况下,此值为NULL。我的数据集包含大量的NULL。

当我在一个非常大的数据集中有数百列时,我目前的做法非常慢。我认为以更好的方式做到这一点可以有很大的改进......

我无法弄清楚语法。谢谢,这将为我节省大量时间!

我目前的做法:

for each_col in table_names_list:
    h2o_df[h2o_df[each_col].isna(), each_col]=0

1 个答案:

答案 0 :(得分:0)

在NA的特殊情况下,您可以使用impute()方法将所有这些替换为单个值(或者,您可以使用列的均值,中值或模式)。这是一个例子:

import h2o

h2o.init()

df = h2o.H2OFrame([[1,2,3],[4,5,6]])
df.insert_missing_values(fraction=0.5, seed=1)

所以框架看起来像这样:

  C1    C2    C3
----  ----  ----
 nan   nan     3
 nan     5   nan

现在我们可以通过值来估算,但是我们需要传递一个与列数相同的值列表(在您的情况下,全部为零)。

df.impute(column=-1, values=[0 for c in range(df.ncol)])

现在框架看起来像这样:

  C1    C2    C3
----  ----  ----
   0     0     3
   0     5     0