Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/Pandas-如何读取_csv并同时忽略具有#的行?_Python_Pandas_Rows_Ignore - Fatal编程技术网

Python/Pandas-如何读取_csv并同时忽略具有#的行?

Python/Pandas-如何读取_csv并同时忽略具有#的行?,python,pandas,rows,ignore,Python,Pandas,Rows,Ignore,我的文件有两种格式……有些在开头有行,有些没有行。我想将上面的矩阵读入pandas数据框,并想在填充我的数据框之前忽略带有#的行。我的头应该是ID、SID和AID等等……所以我想我可以跳过前4行来读取文件,我知道怎么做。但问题是有些文件的行没有前4行,直接以ID-SID-AID…头开始 当我读取数据帧时,我想它会将列名称指定为#PI为什么不使用read#csv读取所有行,然后使用#using.loc过滤掉行 差不多 df.loc[~df['col'].str.startswith('#')]

我的文件有两种格式……有些在开头有行,有些没有行。我想将上面的矩阵读入pandas数据框,并想在填充我的数据框之前忽略带有#的行。我的头应该是ID、SID和AID等等……所以我想我可以跳过前4行来读取文件,我知道怎么做。但问题是有些文件的行没有前4行,直接以ID-SID-AID…头开始


当我读取数据帧时,我想它会将列名称指定为#PI

为什么不使用read#csv读取所有行,然后使用#using.loc过滤掉行

差不多

df.loc[~df['col'].str.startswith('#')]

为什么不使用read_csv读取所有行,然后使用#using.loc过滤掉行呢

差不多

df.loc[~df['col'].str.startswith('#')]

pandas函数允许您通过
comment='#'
指定注释字符。这将忽略以#开头的任何行

熊猫函数允许您通过
comment='#'
指定注释字符。这将忽略以#开头的任何行

可能重复的问题不是重复的问题,因为您提到的链接是在文件读入数据帧之后,列具有标题名。可能重复的问题不是重复的问题,因为您提到的链接是在文件读入数据帧之后,列具有标题名标题名称无论列0是什么。您没有在图片中显示列标签,因此他使用了
'col'
正确,谢谢Jaba!只要将“col”替换为第0列的任何列标题,我想我现在明白你的问题了。在链接的图片中,您希望数据帧是从第5行开始的所有内容,第5行是列标题?在这种情况下,只需使用要作为标题的行的索引指定header参数。i、 e
pd.read\u csv('file.csv',header=4)
。但我不知道如何明确地排除#行。是的,你是正确的,但有时我在前4行中有#,有时它直接以ID-SID-AID开头。。。。。。我明白了。我认为最简单的方法是按原样读取csv并指定
header=None
,然后在我的原始答案中使用该语句,但只需将列索引而不是列名放入以“#”筛选出的行,然后将列名设置为您想要的任何名称。但我猜可能有人会建议一个更优雅的解决方案。不管第0列是什么。您没有在图片中显示列标签,因此他使用了
'col'
正确,谢谢Jaba!只要将“col”替换为第0列的任何列标题,我想我现在明白你的问题了。在链接的图片中,您希望数据帧是从第5行开始的所有内容,第5行是列标题?在这种情况下,只需使用要作为标题的行的索引指定header参数。i、 e
pd.read\u csv('file.csv',header=4)
。但我不知道如何明确地排除#行。是的,你是正确的,但有时我在前4行中有#,有时它直接以ID-SID-AID开头。。。。。。我明白了。我认为最简单的方法是按原样读取csv并指定
header=None
,然后在我的原始答案中使用该语句,但只需将列索引而不是列名放入以“#”筛选出的行,然后将列名设置为您想要的任何名称。但我猜有人可能会建议一个更优雅的解决方案。