Python中H2O数据帧的中文文本

Python中H2O数据帧的中文文本,python,dataframe,h2o,Python,Dataframe,H2o,我有一个utf-8编码的csv文件和中文文本。当我尝试作为h2o数据帧导入时,数据被错误地显示为胡言乱语 dataframe = h2o.import_file('test.csv') 在生成的数据框中,列名是正确的,但它显示的文本不是中文文本,而是如下所示: 在ç�¡è¦ºäº†ä½ 知é� 我查阅了h2o文档,在使用import_文件时,似乎没有任何方法可以像pandas那样设置编码选项。此外,在运行以下程序时: testing = ['你','好','嗎'] h2o.H2O

我有一个utf-8编码的csv文件和中文文本。当我尝试作为h2o数据帧导入时,数据被错误地显示为胡言乱语

 dataframe = h2o.import_file('test.csv')
在生成的数据框中,列名是正确的,但它显示的文本不是中文文本,而是如下所示:

 在ç�¡è¦ºäº†ä½ 知é�
我查阅了h2o文档,在使用import_文件时,似乎没有任何方法可以像pandas那样设置编码选项。此外,在运行以下程序时:

testing = ['你','好','嗎']
h2o.H2OFrame(testing)
它给出了以下错误:

--------------------------------------------------------------------------
 UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-2-5f4b3eb49a84> in <module>
      1 testing = ['你','好','嗎']
----> 2 h2o.H2OFrame(testing)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\h2o\frame.py in __init__(self, python_obj, destination_frame, header, separator, column_names, column_types, na_strings, skipped_columns)
    104         if python_obj is not None:
    105             self._upload_python_object(python_obj, 
destination_frame, header, separator,
--> 106                                        column_names, 
column_types, na_strings, skipped_columns)
    107 
    108     @staticmethod

~\AppData\Local\Continuum\anaconda3\lib\site-packages\h2o\frame.py in _upload_python_object(self, python_obj, destination_frame, header, separator, column_names, column_types, na_strings, skipped_columns)
    143             csv_writer.writerow([row.get(k, None) for k in col_header])
    144         else:
--> 145             csv_writer.writerows(data_to_write)
    146         tmp_file.close()  # close the streams
    147         self._upload_parse(tmp_path, destination_frame, 1, 
separator, column_names, column_types, na_strings, skipped_columns)

~\AppData\Local\Continuum\anaconda3\lib\encodings\cp1252.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_table)[0]
     20 
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode character '\u4f60' in position 1: character maps to <undefined>
--------------------------------------------------------------------------
UnicodeEncodeError回溯(最近一次呼叫最后一次)
在里面
1测试=['你','好','嗎']
---->2 h2o.h2o框架(测试)
~\AppData\Local\Continuum\anaconda3\lib\site packages\h2o\frame.py in\uuuuu init\uuuu(self、python\u obj、destination\u frame、header、separator、column\u名称、column\u类型、na\u字符串、跳过的\u列)
104如果python_obj不是无:
105自我上传python对象(python对象,
目标帧、标题、分隔符、,
-->106列名称,
列(类型、字符串、跳过的列)
107
108@staticmethod
python对象中的~\AppData\Local\Continuum\anaconda3\lib\site packages\h2o\frame.py(self、python\u obj、destination\u frame、header、separator、column\u名称、column\u类型、na\u字符串、跳过的\u列)
143 csv_writer.writerow([col_头中k的行获取(k,无)])
144.其他:
-->145 csv_writer.writerows(数据写入)
146 tmp_file.close()#关闭流
147自我上传解析(tmp路径,目标帧,1,
分隔符、列名称、列类型、na字符串、跳过的列)
编码中的~\AppData\Local\Continuum\anaconda3\lib\encodings\cp1252.py(self、input、final)
17类递增编码器(编解码器.递增编码器):
18 def编码(自身、输入、最终=假):
--->19返回编解码器.charmap_encode(输入、自身错误、编码_表)[0]
20
21类增量编码器(编解码器.增量编码器):
UnicodeEncodeError:“charmap”编解码器无法对位置1中的字符“\u4f60”进行编码:字符映射到

基于此错误,h2o似乎正在使用cp1252编码。是否有人能提供帮助,让h2o将中文csv文件导入utf-8编码?谢谢。

注释中的jira票证已解决,并且此解析问题不再是h2o较新版本的问题。我的建议是升级-例如,如果您升级到最新版本的H2O,您不应该有任何问题

我使用您的示例对3.22.0.2版进行了测试,得到:

In [6]: h2o.H2OFrame(testing)
Parse progress: |█████████████████████████████████████████████████████████████████████████████| 100%
Out[6]:
C1
----
你
好
嗎

[3 rows x 1 column]

我想这可能是我18个月前报告的bug的重复,所以我很惊讶它仍然没有被触及:(如果你同意这是同一个问题,也许你可以在bug报告中添加一些东西。)流错误PUBDEV-4640不再是可复制的。它对我来说工作正常。这看起来是另一个问题。