使用pandas DataFrame读取CSV文件时如何正确处理$字符
问题根因
你反复调整编码参数无效的核心原因是问题和文件编码、pandas读取逻辑完全无关:
pandas本身可以正常识别$符号,你看到$包裹的文本被渲染为粗斜体,是你使用的Notebook类交互环境(Jupyter Notebook/Lab、VS Code Notebook、Colab等)在输出DataFrame时默认启用了Markdown/LaTeX富文本渲染——单组$包裹的内容会被解析为LaTeX行内公式标记,部分渲染器也会同步触发斜体/粗体格式规则,最终显示为异常的格式效果,本质是前端渲染层的问题,不是读文件出错。
你可以先执行以下代码做快速验证:
# 替换成你实际包含$符号的列名 print(df["对应列名"].iloc[0])
如果print输出的内容可以正常显示原始带$的文本,即可完全确认问题出在渲染环节,不需要再调整任何read_csv的编码相关参数。
可行解决方案
根据你的使用场景选一个即可:
- 临时关闭pandas输出的LaTeX公式渲染
执行全局配置后,再输出DataFrame就不会把$识别为公式标记:
如果是VS Code Notebook环境,也可以直接在单元格输出区域的设置项里,手动关闭「渲染LaTeX公式」开关。pd.set_option('display.html.use_mathjax', False) df.head() - 转义文本中的$符号(适合需要保留富文本渲染的场景)
如果不想全局关闭渲染能力,可以批量把文本列里的$替换为转义格式,避免被渲染器识别为格式标记:df = df.replace(r'\$', r'\\$', regex=True) df.head() - 强制用纯文本输出DataFrame
不需要富文本展示的话,直接用print输出纯文本内容,完全不会触发Markdown/LaTeX格式解析:print(df.head())
内容的提问来源于stack exchange,提问作者nitin bhatt
相关产品推荐
相关产品推荐

