在python h2o模块中,如何在使用h2o.import_sql_select()导入数据时指定na_strings?
In python h2o module, how to specify na_strings while using h2o.import_sql_select() to import data?
我正在尝试使用 h2o.import_sql_select()
将数据从 mysql table 导入到 H2oFrame 中。我希望数据库中 VARCHAR 列中的 NULL 或空值在导入到 H2oFrame 时被识别为 NA,但它们被视为空字符串文字。但是,对于数字列,NULL 值会自动识别为 NA。
这是我的代码:
select_query = 'SELECT * FROM my_table'
train_data = h2o.import_sql_select("jdbc:mysql://localhost:3306/my_schema", select_query, "username", "password", use_temp_table=False)
train_data['my_string_column'].isna()
即使对于来自数据库的 NULL 或空值,结果也始终为零。
然而,当我将数据转储到 CSV 并使用 h2o.import_file('/path/to/file.csv', na_strings=[''])
导入它然后执行 train_data['my_string_column'].isna()
时,我可以看到空值被正确识别为 NA,因为 na_strings
参数。
在使用 h2o.import_sql_select()
导入数据时,是否有某种指定 na_strings
或其他变通方法来实现预期行为的方法?
目前没有实现这样的功能。这仅仅是因为与空字符串和 NULL 之间没有区别的 CSV 相反,SQL 具有 NULL 的概念,因此似乎不需要这样的功能。
但是您是说对于字符串列,您在 H2O Frame 中没有获得任何 N/A 值,这听起来像是一个错误,我会调查它。
我正在尝试使用 h2o.import_sql_select()
将数据从 mysql table 导入到 H2oFrame 中。我希望数据库中 VARCHAR 列中的 NULL 或空值在导入到 H2oFrame 时被识别为 NA,但它们被视为空字符串文字。但是,对于数字列,NULL 值会自动识别为 NA。
这是我的代码:
select_query = 'SELECT * FROM my_table'
train_data = h2o.import_sql_select("jdbc:mysql://localhost:3306/my_schema", select_query, "username", "password", use_temp_table=False)
train_data['my_string_column'].isna()
即使对于来自数据库的 NULL 或空值,结果也始终为零。
然而,当我将数据转储到 CSV 并使用 h2o.import_file('/path/to/file.csv', na_strings=[''])
导入它然后执行 train_data['my_string_column'].isna()
时,我可以看到空值被正确识别为 NA,因为 na_strings
参数。
在使用 h2o.import_sql_select()
导入数据时,是否有某种指定 na_strings
或其他变通方法来实现预期行为的方法?
目前没有实现这样的功能。这仅仅是因为与空字符串和 NULL 之间没有区别的 CSV 相反,SQL 具有 NULL 的概念,因此似乎不需要这样的功能。
但是您是说对于字符串列,您在 H2O Frame 中没有获得任何 N/A 值,这听起来像是一个错误,我会调查它。