2017-06-13 79 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