相关疑难解决方法(0)

pandas.read_csv:如何跳过评论行

我想我误解了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

python pandas

27
推荐指数
3
解决办法
2万
查看次数

使用带标题的熊猫阅读csv

#的标题行中包含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)

python csv pandas

5
推荐指数
1
解决办法
1193
查看次数

标签 统计

pandas ×2

python ×2

csv ×1