拼写检查Python / Pandas / PyEnchant中的列

时间:2016-09-14 23:02:08

标签: python pandas pyenchant

我正在尝试使用Pyenchant拼写检查名为house的pandas数据框中名为pets的列中的每个条目。

import enchant
dict = enchant.Dict("en_US")

for pets in house:
     [pets] = dict.suggest([pets])[0]

当我运行此代码时,我收到一条关于不将字节串传递给Pyenchant的错误。不知道该怎么办。完整错误文本如下:

  

文件“myfile”,第20行,in       [宠物] = dict.suggest([宠物])[0]     文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/enchant/init.py”,第662行,建议       word = self._StringClass(word)     文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/enchant/utils.py”,第152行, new       引发错误(“不要将字节串传递给pyenchant”)   enchant.errors.Error:不要将bytestrings传递给pyenchant

我该如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:0)

如果您的数据框包含字节串,则需要在将它们传递给code之前解码它们;您可以使用enchant执行此操作。然后,要应用您的函数,处理此类情况的最简洁方法通常是在整个系列中使用.str.decode('utf-8')而不是迭代。 (此外,您不应该隐藏关键字map):

dict