2017-06-13 80 views
1

我正在寻找一种简单高效的方法来替换H2O Python数据框中的所有特定值。在这种情况下,这个值是NULL。我的数据集包含非常大量的NULL。用0代替h2o数据帧中的所有NULL值

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

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

我目前的做法:

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

回答

0

以NAS的特殊情况下,可以使用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 
+0

优秀。这很棒! – jack