Python推特情感分析报错:float对象无encode属性求解决
解决AttributeError: 'float' object has no attribute 'encode'问题
问题根源
你的代码报错是因为df['Translated_message']列中存在float类型的值(大概率是NaN空值),即便用astype('string')转换,pandas仍可能保留部分空值的float类型特性,导致后续调用encode时触发错误。
可行解决方案
先清理空值再转类型
先把列里的所有空值替换为空字符串,再统一转换为字符串类型,从根源避免float值出现:df['Translated_message'] = df['Translated_message'].fillna('').astype(str)若想用pandas专属的String类型,可改成:
df['Translated_message'] = df['Translated_message'].fillna('').astype('string')简化编码处理逻辑
原代码text = str(text.encode("utf-8"))完全没必要,encode后转str会生成带b'...'的字节串表示,反而增加麻烦。直接确保text是字符串即可:text = str(text)若确实需要处理编码,改成先转字符串再编码解码:
text = str(text).encode("utf-8").decode("utf-8")排查异常数据(可选)
如果还是报错,可打印出列里的非字符串值定位问题:invalid_entries = df[df['Translated_message'].apply(lambda x: not isinstance(x, str))] print(invalid_entries)
内容的提问来源于stack exchange,提问作者Atharv Singh
相关产品推荐
相关产品推荐

