Python中DataFrame字符串编码未识别,如何将\\u转义符转为实际Unicode字符
问题根因
你替换^为\后得到的字符串中,\u是两个独立的普通字符,不是Python代码中直接书写的Unicode转义标识,解释器不会自动把\uXXXX序列解析为对应的Unicode字符,因此只会以转义后的字面量形式存储展示。
解决方法
通过unicode_escape编码规则对字符串做转义解析即可,直接修改你的处理逻辑:
df["column_header"] = df["column_header"].apply( lambda x: str(x).replace("^", "\\").encode().decode("unicode_escape") )
验证
处理完成后执行如下代码即可确认效果:
# 输出预期的Kolín print(df["column_header"][0]) # 输出结果和手动定义的字面量编码结果一致:b'Kol\xc3\xadn' print(df["column_header"][0].encode())
可选方案
如果你的字符串中存在其他需要保留的反斜杠,也可以用ast.literal_eval做安全的字面量解析,注意确保原字符串中没有双引号即可:
import ast df["column_header"] = df["column_header"].apply( lambda x: ast.literal_eval(f'"{str(x).replace("^", "\\")}"') )
内容的提问来源于stack exchange,提问作者mayool
相关产品推荐
相关产品推荐

