我想用pandas阅读一个csv文件,该文件的格式如下:
atrrth
sfkjbgksjg
airuqghlerig
Name Roll
airuqgorqowi
awlrkgjabgwl
AAA 67
BBB 55
CCC 07
如您所见,如果我使用pd.read_csv
,就会得到一个相当明显的错误:
但我希望把所有的数据放到一个数据帧中。使用error_bad_lines = False
将删除重要内容并只保留垃圾值
以下是2个可能的列名:
Name : [Name , NAME , Name of student]
Roll : [Rollno , Roll , ROLL]
如何做到这一点?在
打开csv文件,找到列名起始的行:
该值将存储在
^{pr2}$skip
参数中在Python3.X中工作
我想建议对@RahulAgarwal's answer稍作修改/简化。您可以继续将同一个流直接加载到pandas中,而不是关闭并重新打开文件。您不必记录要跳过的行数,而是可以记录标题行并手动拆分以提供列名:
这对于具有大量垃圾桶线的文件具有优势。在
更详细的检查可以是这样的:
^{pr2}$但在这个函数中,任何可能的垃圾行都会被跳过。您可以将其用作过滤器:
如果这确实是一个结构(而不仅仅是一个可以得到哪种垃圾的例子),您可以简单地使用skiprows参数来指示应该跳过多少行。换句话说,您应该这样读取数据帧:
请注意,
skiprows
可以做得更多。检查文件。在相关问题 更多 >
编程相关推荐