Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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 在熊猫中读取CSV文件,中间有空行_Python_Pandas_Csv - Fatal编程技术网

Python 在熊猫中读取CSV文件,中间有空行

Python 在熊猫中读取CSV文件,中间有空行,python,pandas,csv,Python,Pandas,Csv,我有一个像这样的data.csv文件 Col1,Col2,Col3,Col4,Col5 10,12,14,15,16 18,20,22,24,26 28,30,32,34,36 38,40,42,44,46 48,50,52,54,56 Col6,Col7 11,12 13,14 ... 现在,我只想读取Col1到Col5列的数据,不需要Col6和Col7 我尝试使用 df = pd.read_csv('data.csv',header=0) 然后它抛出一个

我有一个像这样的data.csv文件

Col1,Col2,Col3,Col4,Col5  
10,12,14,15,16  
18,20,22,24,26  
28,30,32,34,36  
38,40,42,44,46  
48,50,52,54,56

Col6,Col7  
11,12  
13,14  
...
现在,我只想读取Col1到Col5列的数据,不需要Col6和Col7

我尝试使用

df = pd.read_csv('data.csv',header=0)
然后它抛出一个错误说

UnicodeDecodeError : 'utf-8' codec cant decode byte 0xb2 in position 3: invalid start byte
然后,我尝试了这个

df = pd.read_csv('data.csv',header=0,error_bad_lines=True)

但这也没有达到预期的效果。我们如何才能只读到csv文件中的第一个空行?

您可以创建一个生成器,逐行读取文件。结果将传递给
熊猫

将熊猫作为pd导入
输入io
def文件读取器(文件名):
打开(文件名)为f时:
对于f中的行:
如果行和行!='\n':
生产线
其他:
打破
data=io.StringIO(“”.join(文件读取器('data.csv'))
df=pd.read\U csv(数据)

熊猫没有在某个条件下停止的选项,但它有在n行之后停止的条件。因此,您可以先读取文件,计算行数直到为空,然后使用

pd.read_csv('file.csv',nrows= count )
按照这一思路:

count = 0
with open(filename) as f:
    for line in f:
        if line and line != '\n':
            count += 1
        else:
            break

pd.read_csv(filename,nrows=count)

您是否尝试过
编码='utf-16'
?在我看来,问题在于文件。这不是有效的csv文件,但两个csv文件合并为一个。尝试将文件拆分为两个文件。有许多文件需要读取@Christian Sloper。因此,要计算每个文件位中的行数是非常困难的。很难理解注释,在将程序段加载到pandas之前,使用程序段进行计算。