You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas读取CSV含特殊字符编码异常问题及词云处理需求

解决Pandas读取CSV后的特殊字符转义问题

这问题我碰到过好几次,根源就是Pandas读取CSV时没匹配到正确的编码——虽然df.head()能正常显示,但底层存储的是转义后的字节序列,直接取单元格内容就会出现\xc3\xa1这类乱码。Excel和LibreOffice能正常打开,说明文件本身编码是标准的,咱们一步步解决:

1. 读取时直接指定正确编码

最省心的方法是在pd.read_csv里明确编码参数,优先试utf-8,不行再试latin-1(也就是ISO-8859-1):

# 优先尝试UTF-8编码
df = pd.read_csv('../data.csv', encoding='utf-8')

# 如果UTF-8报错,切换到Latin-1
df = pd.read_csv('../data.csv', encoding='latin-1')

读取后再用df.iloc[0].descripcion检查,应该就能看到正常的á、ñ这类特殊字符了。

2. 修复已读取的DataFrame编码

要是已经读取了DataFrame不想重新加载,可以手动对目标列进行转码处理:

# 将转义字符串先编码为字节,再用UTF-8解码成正常字符
df['descripcion'] = df['descripcion'].apply(lambda x: x.encode('latin-1').decode('utf-8'))

这个操作能把\xc3\xa1这类转义序列还原成对应的Unicode字符。

3. 优化词云处理代码(确保编码正常)

编码问题解决后,你的词云代码也可以优化得更简洁高效,同时保证特殊字符正常显示:

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt

stopwords = set(STOPWORDS)
comment_words = ""

# 遍历所有描述行,统一转小写并拼接
for desc in df['descripcion']:
    tokens = desc.lower().split()
    comment_words += " ".join(tokens) + " "

# 生成词云
wordcloud = WordCloud(
    width=1600,
    height=1600,
    background_color='white',
    stopwords=stopwords,
    min_font_size=10
).generate(comment_words)

# 绘图展示
plt.figure(figsize=(8, 8), facecolor=None)
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()

内容的提问来源于stack exchange,提问作者Ricardo Colombo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 23:27:48