用 0 有效地替换 h2o 数据框中的所有 NULL 值
Replacing all NULL values in a h2o data frame efficiently with 0
我正在寻找一种简单有效的方法来替换 H2O Python 数据框中的所有特定值。在这种情况下,该值为 NULL。我的数据集包含大量 NULL。
当我在一个非常大的数据集中有数百列时,我目前的做法非常慢。我认为以更好的方式执行此操作可以有实质性的改进...
我就是想不通语法。谢谢,这将为我节省大量时间!
我目前的做法:
for each_col in table_names_list:
h2o_df[h2o_df[each_col].isna(), each_col]=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
我正在寻找一种简单有效的方法来替换 H2O Python 数据框中的所有特定值。在这种情况下,该值为 NULL。我的数据集包含大量 NULL。
当我在一个非常大的数据集中有数百列时,我目前的做法非常慢。我认为以更好的方式执行此操作可以有实质性的改进...
我就是想不通语法。谢谢,这将为我节省大量时间!
我目前的做法:
for each_col in table_names_list:
h2o_df[h2o_df[each_col].isna(), each_col]=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