Python 在熊猫中读取CSV文件,中间有空行
我有一个像这样的data.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) 然后它抛出一个
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之前,使用程序段进行计算。