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

如何处理Pandas DataFrame中CSV列的Unicode转对应字符?

解决Pandas加载CSV后Unicode转义字符无法替换的问题

嘿,我懂你遇到的困扰了——之前手动用str.replace()没效果,核心原因是CSV里的Col2列存储的不是真正的Unicode字符,而是字符串形式的列表,里面的转义序列被当成普通文本保存了。比如你看到的\u00e2,在实际数据里是\\u00e2(也就是两个反斜杠),所以直接替换\u00e2根本找不到匹配项。

给你一套靠谱的解决步骤:

1. 解析字符串形式的列表

首先,Col2里的内容看起来像列表,但其实是字符串(比如"[\"consommation \\u00e9nerg\\u00e9tique de b\\u00e2timents publics\"]"),我们需要把它转换成真正的Python列表。用ast.literal_eval()就能完美处理这个:

import pandas as pd
import ast

# 加载你的CSV文件
df = pd.read_csv("your_file.csv")

# 将Col2的字符串解析为实际列表
df["Col2"] = df["Col2"].apply(ast.literal_eval)

2. 提取列表中的目标字符串(可选)

看你的数据,每个列表里只有一个元素,如果你想把它从列表里取出来变成普通字符串列,可以再加一步:

df["Col2"] = df["Col2"].str[0]

验证结果

这时候你再打印Col2的内容,就能看到正确的带重音字符了:

print(df["Col2"].iloc[0])
# 输出:consommation énergétique de bâtiments publics

再给你捋清楚为什么之前的方法没用:
你写的df['Col2'].str.replace('\u00e2', 'â')是在找实际的â字符,但你的CSV里存的是字符串"\\u00e2",也就是文本形式的\u00e2,两者完全不是一回事。而ast.literal_eval()会自动把这些转义序列转换成对应的Unicode字符,一步到位解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:16:01