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

如何在pandas.read_csv中忽略#开头的注释行但保留数据内容中的#符号?

如何在pandas.read_csv中忽略#开头的注释行但保留数据内容中的#符号?

这个问题我之前也踩过坑!pandas自带的comment='#'参数逻辑有点“一刀切”——它会把每一行里第一个出现的#之后的所有内容都当作注释截断,不管这个#是不是在注释行的开头,这就导致你数据列里的#python、#rstats被误判成注释,最后变成了NaN。

那怎么解决呢?其实我们可以先手动过滤掉真正的注释行(也就是以#开头的行),再把处理后的内容传给read_csv,这样就完全不会影响数据里的#符号了。

给你写个具体的代码示例:

import pandas as pd
from io import StringIO

csv_content = """\
# title: Sample CSV
# description: This dataset
id,name,favourite_hashtag
1,John,#python
2,Jane,#rstats
"""

# 过滤掉以#开头的行(用lstrip()处理了行首可能存在的空格)
filtered_lines = [line for line in csv_content.splitlines() if not line.lstrip().startswith('#')]
# 把过滤后的行重新拼成可读取的字符串
filtered_content = "\n".join(filtered_lines)
# 读取处理后的内容
data = pd.read_csv(StringIO(filtered_content))
print(data)

运行这段代码后,输出就完全符合预期了:

id  name favourite_hashtag
0   1  John            #python
1   2  Jane            #rstats

至于你问的能不能提feature request?当然有希望!你可以去pandas的GitHub仓库提交需求,不过记得先搜一下有没有人已经提过类似的issue。提交的时候讲清楚你的需求:希望comment参数可以只识别**行首的#**作为注释行的标记,而不是行内任意位置的#,这样就能同时兼顾注释行过滤和数据内#符号的保留了。

备注:内容来源于stack exchange,提问作者matentzn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:39:29