我想我误解了read_csv的用意.如果我有一个'j'文件
# notes
a,b,c
# more notes
1,2,3
Run Code Online (Sandbox Code Playgroud)
我怎么能pandas.read_csv这个文件,跳过任何'#'评论的行?我在帮助'注释'中看到不支持行,但它表示应该返回一个空行.我看到一个错误
df = pandas.read_csv('j', comment='#')
Run Code Online (Sandbox Code Playgroud)
CParserError:标记数据时出错.C错误:第2行预期有1个字段,见3
我现在在
In [15]: pandas.__version__
Out[15]: '0.12.0rc1'
Run Code Online (Sandbox Code Playgroud)
版本'0.12.0-199-g4c8ad82':
In [43]: df = pandas.read_csv('j', comment='#', header=None)
Run Code Online (Sandbox Code Playgroud)
CParserError:标记数据时出错.C错误:第2行预期有1个字段,见3
我#的标题行中包含CSV文件:
s = '#one two three\n1 2 3'
Run Code Online (Sandbox Code Playgroud)
如果我使用pd.read_csv的#标志进入第一头:
import pandas as pd
from io import StringIO
pd.read_csv(StringIO(s), delim_whitespace=True)
#one two three
0 1 2 3
Run Code Online (Sandbox Code Playgroud)
如果设置参数comment='#',则pandas完全忽略该行。
有没有简单的方法来处理这种情况?
与之相关的第二个问题是在这种情况下如何处理报价,它不能工作#:
s = '"one one" two three\n1 2 3'
print(pd.read_csv(StringIO(s), delim_whitespace=True))
one one two three
0 1 2 3
Run Code Online (Sandbox Code Playgroud)
它没有#:
s = '#"one one" two three\n1 2 3'
print(pd.read_csv(StringIO(s), delim_whitespace=True))
#"one one" two three
0 1 2 3 …Run Code Online (Sandbox Code Playgroud)