将带有俄语字符的 numpy.ndarray 写入文件

Posted

技术标签:

【中文标题】将带有俄语字符的 numpy.ndarray 写入文件【英文标题】:Write numpy.ndarray with Russian characters to file 【发布时间】:2016-11-10 22:01:41 【问题描述】:

我尝试将numpy.ndarray 写入文件。 我用

unique1 = np.unique(df['search_term'])
unique1 = unique1.tolist()

然后下一次尝试 1)

edf = pd.DataFrame()
edf['term'] = unique1
writer = pd.ExcelWriter(r'term.xlsx', engine='xlsxwriter')
edf.to_excel(writer)
writer.close()

和 2)

thefile = codecs.open('domain.txt', 'w', encoding='utf-8')
for item in unique:
    thefile.write("%s\n" % item)

但都返回UnicodeDecodeError: 'utf8' codec can't decode byte 0xd7 in position 9: invalid continuation byte

【问题讨论】:

你的意思是标题是俄语字符写入numpy.ndarray到文件?目前,缺少一个u,这使得仅看标题很难理解你在问什么。 【参考方案1】:

如果您将字符串编码为 utf8,则第二个示例应该可以工作。

以下在 Python2 中使用 utf8 编码文件工作:

# _*_ coding: utf-8

import pandas as pd

edf = pd.DataFrame()
edf['term'] = ['foo', 'bar', u'русском']

writer = pd.ExcelWriter(r'term.xlsx', engine='xlsxwriter')
edf.to_excel(writer)

writer.save()

输出:

【讨论】:

以上是关于将带有俄语字符的 numpy.ndarray 写入文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 numpy ndarray 写入文本文件?

TypeError:获取参数数组的类型无效 numpy.ndarray,必须是字符串或张量。 (不能将 ndarray 转换为张量或操作。)

带有 ColumnTransformer 的 SKLearn 管道:'numpy.ndarray' 对象没有属性'lower'

带有俄语语言的 Grails 2.4 中的 UTF-8 问题

如何在 Python3 中解码编码文字/字符串的 numpy 数组? AttributeError:“numpy.ndarray”对象没有属性“解码”

CountVectorizer:AttributeError:“numpy.ndarray”对象没有属性“lower”