pandas read_csv处理数据时报AttributeError: 'str'对象无decode属性
报错根因
Python 3 中str字符串类型默认就是Unicode编码,仅bytes字节类型对象支持decode()解码方法,你代码中对Cleaned_Description列的str类型值调用decode方法,自然会触发属性不存在的错误。
你读取CSV时使用encoding='unicode_escape'参数,pandas已经自动将文件内容解码为str类型,不需要额外做二次解码操作。
修复方案
- 直接删除原有代码中的
.decode('utf-8')逻辑即可,修改后代码如下:
sentences = list(train['Cleaned_Description'].map(lambda x: re.sub("[^a-zA-Z]"," ", x).lower().split()))
- 如果处理过程中发现字符乱码,可优先更换读取CSV的编码参数,
utf-8-sig、gbk等编码比unicode_escape适配性更强,能避免大量特殊字符转义异常问题:
df = pd.read_csv('x.csv', encoding='utf-8-sig')
内容的提问来源于stack exchange,提问作者Gupta
相关产品推荐
相关产品推荐

