【问题标题】:Creating h2o dataframe from pandas and unicode error从 pandas 和 unicode 错误创建 h2o 数据框
【发布时间】:2017-08-23 02:04:15
【问题描述】:

如何安全地将 pandas 对象转换为 h2o 数据框?

import h2o
import pandas as pd

df = pd.DataFrame({'col1': [1,1,2], 'col2': ['César Chávez Day', 'César Chávez Day', 'César Chávez Day']})
hf = h2o.H2OFrame(df)  #gives error

UnicodeEncodeError: 'ascii' 编解码器无法对字符 '\xe9' 进行编码 位置 4:序数不在范围内(128)

环境: Python 3.5,h2o 3.10.4.2

【问题讨论】:

标签: python python-3.x dataframe unicode h2o


【解决方案1】:

我同意这不是 H2O 特有的问题。这对我有用(相同的 H2O 和 Python 版本):

import h2o
import pandas as pd

df = pd.DataFrame({'col1': [1,1,2], 'col2': ['César Chávez Day', 'César Chávez Day', 'César Chávez Day']})
hf = h2o.H2OFrame(df)

## -- End pasted text --
Parse progress: |█████████████████████████████████████████████████████████| 100%

In [4]: hf
Out[4]:   col1  col2
------  ----------------
     1  César Chávez Day
     1  César Chávez Day
     2  César Chávez Day

[3 rows x 2 columns]

In [5]: type('César Chávez Day')
Out[5]: str

我的规格(您可能需要更改默认编码):

In [6]: import sys

In [7]: sys.getdefaultencoding()
Out[7]: 'utf-8'

这个帖子可能会有所帮助:How do I check if a string is unicode or ascii?

【讨论】:

  • 我已经有默认编码等于'utf-8'。还有什么?
  • 刚刚检查,yourtype('César Chávez Day') 是“str”?
  • 也许试试这个(虽然可能是多余的):df = pd.DataFrame({'col1': [1,1,2], 'col2': [str('César Chávez Day'), str('César Chávez Day'), str('César Chávez Day')]})
  • 我知道这很奇怪,但type('César Chávez Day') = str 和你的第二个建议也会导致同样的unicode erorr
猜你喜欢
  • 2020-07-27
  • 2017-07-03
  • 2016-05-17
  • 1970-01-01
  • 2018-03-02
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
相关资源
最近更新 更多