首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中H2O DataFrame的中文文本

Python中H2O DataFrame的中文文本
EN

Stack Overflow用户
提问于 2018-12-20 14:50:06
回答 1查看 354关注 0票数 0

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

代码语言:javascript
复制
 dataframe = h2o.import_file('test.csv')

在生成的dataframe中,列名是正确的,但它显示的不是中文文本,而是如下所示的文本:

代码语言:javascript
复制
 在ç�¡è¦ºäº†ä½ 知é�

我查阅了h2o文档,在使用import_file时,似乎没有任何方法可以像pandas那样设置编码选项。此外,在运行以下命令时:

代码语言:javascript
复制
testing = ['你','好','嗎']
h2o.H2OFrame(testing)

它会给出这个错误:

代码语言:javascript
复制
--------------------------------------------------------------------------
 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>

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

EN

回答 1

Stack Overflow用户

发布于 2019-01-03 04:03:17

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

我用你的例子做了一个3.22.0.2版的测试,得到了:

代码语言:javascript
复制
In [6]: h2o.H2OFrame(testing)
Parse progress: |█████████████████████████████████████████████████████████████████████████████| 100%
Out[6]:
C1
----
你
好
嗎

[3 rows x 1 column]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53863717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档