【问题标题】:UnicodeEncodeError: 'ascii' codec can't encode characters in position 321-322: ordinal not in range(128)UnicodeEncodeError:“ascii”编解码器无法对位置 321-322 中的字符进行编码:序数不在范围内(128)
【发布时间】:2018-04-28 05:12:02
【问题描述】:

我正在尝试使用 pandas 连接 xlsx 文件中的列值。我正在使用下面的代码。

(df.astype(str).groupby('name', as_index=False, sort=False)
             .apply(lambda x: pd.Series({v: ','.join(x[v].unique()) for v in x})))

但是,我遇到了类似的错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position 321-322: ordinal not in range(128)

【问题讨论】:

  • 只有df.astype(str)会出现同样的错误吗?
  • 您能补充一下您是如何创建 DataFrame 的吗?
  • @Sebastian,是的
  • df = pd.DataFrame() file_name = /home/file_name.xlsx" df = pd.read_excel(file_name)
  • 您的 Excel 文件中有特定字符吗?像日本人。另外一个好主意是打破线路的不同部分,看看问题出在哪里。

标签: python-2.7 pandas encoding python-unicode


【解决方案1】:

如果您的 DataFrame 只需要字符串,您可以在 read_excel 函数中使用选项 dtype = unicode 并删除 astype(str)

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 2020-07-27
    • 2012-07-17
    • 2014-03-08
    • 2015-09-26
    • 2017-02-28
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多