Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 为什么read_csv skiprows值需要低于这种情况下的值?_Python_Python 3.x_Pandas_Dataframe_Csv - Fatal编程技术网

Python 为什么read_csv skiprows值需要低于这种情况下的值?

Python 为什么read_csv skiprows值需要低于这种情况下的值?,python,python-3.x,pandas,dataframe,csv,Python,Python 3.x,Pandas,Dataframe,Csv,我有一个日志文件(本例中为Text.TXT): 要将此日志文件读入pandas并忽略所有标题信息,我将使用skiprows直到第16行,如下所示: pd.read_csv('test.TXT',skiprows=16,sep=';') 但这会产生EmptyDataError,因为它跳过了数据的起始位置。为了实现这一点,我不得不在第11行使用它: pd.read_csv('test.TXT',skiprows=11,sep=';') Timestamp T ID P 0 16

我有一个日志文件(本例中为Text.TXT):

要将此日志文件读入pandas并忽略所有标题信息,我将使用
skiprows
直到第16行,如下所示:

pd.read_csv('test.TXT',skiprows=16,sep=';')
但这会产生
EmptyDataError
,因为它跳过了数据的起始位置。为了实现这一点,我不得不在第11行使用它:

pd.read_csv('test.TXT',skiprows=11,sep=';')
      Timestamp  T  ID  P
0  16T122109957  0   6  6

我的问题是,如果数据直到第17行才开始,在这种情况下,为什么我需要请求一个skiprows到第11行

一种解决方法是使用

来自表头参数下的单据:

请注意,如果skip_blank_lines=True,此参数将忽略注释行和空行,因此header=0表示数据的第一行,而不是文件的第一行


不确定skiprows在这里的怪异行为

当我执行
pd.read_csv(StringIO(text),header=15,sep=';')
时,它给了我一个错误
parserror:Passed header=15,但文件中只有13行。我认为这是一个错误。至少这解释了为什么它可以与11配合使用。@Ch3steR我认为当传递'sep'参数时,这是一个错误
pd.read\u csv(StringIO(text),skiprows=16)
似乎工作正常(跳过正确数量的行)。是的,没有
sep
它工作正常。这好像是一个错误。如果与此相关的问题不存在,您可以在GitHub中打开问题。@Ch3steR替换;标题中带有逗号的实例似乎使其跳过了正确的行数。@Ch3steR我将介绍提交问题
pd.read_csv('test.TXT',skiprows=11,sep=';')
      Timestamp  T  ID  P
0  16T122109957  0   6  6
from io import StringIO

text='''# 1: 5
# 3: x
# F: 5.
# ID: 001
# No.: 2
# No.: 4
# Time: 20191216T122109
# Value: ";"
# Time: 4
# Time: ""
# Time ms: ""
# Date: ""
# Time separator: "T"
# J: 1000000
# Silent: false
# mode: true
Timestamp;T;ID;P
16T122109957;0;6;0006'''

df = pd.read_csv(StringIO(text),comment='#',sep=';')
df
      Timestamp  T  ID  P
0  16T122109957  0   6  6
df = pd.read_csv(StringIO(text),header=0,comment='#',sep=';')