Leyendo partes de ~ 13000 filas de archivos CSV con pandas read_csv y nrows

Estoy tratando de leer segmentos de un archivo CSV en un DataFrame de pandas, y me estoy encontrando con problemas cuando establezco las filas en más de un cierto punto. Mi archivo CSV se divide en diferentes segmentos con diferentes encabezados / tipos de datos, así que revisé el archivo y encontré los números de línea de los diferentes segmentos, y guardé los números de línea. Cuando trato de hacer:

pd.io.parsers.read_csv('filename',skiprows=40, nrows=12646) 

Funciona bien. Cuantas más filas, y arroja un error:

 CParserError: Error tokenizing data. C error: Expected 56 fields in line 13897, saw 71 

Es cierto que la línea 13897 tiene tantas filas, por eso trato de usar nows y skiprows. Puedo encontrar la última fila que leerán los pandas y no se verá muy diferente del rest. Mirando el archivo en un editor hexadecimal todavía no veo ninguna diferencia.

También lo he intentado con otro archivo CSV, y obtengo resultados similares:

 pd.io.parsers.read_csv('file2',skiprows=112, nrows=18524)  Int64Index: 18188 entries, 0 to 18187 

Pero:

 pd.io.parsers.read_csv('file2',skiprows=112, nrows=18525) 

da:

 CParserError: Error tokenizing data. C error: Expected 56 fields in line 19190, saw 71 

¿Se me escapa algo? Hay otra manera de hacer esto?

Estoy usando: pandas-0.10.1.win-amd64-py3.3 , numpy-MKL-1.7.1rc1.win-amd64-py3.3 , y python-3.3.0.amd64 en Windows. Me sale el mismo problema con numpy-unoptimized-1.7.1rc1.win-amd64-py3.3 .

Puede usar warn_bad_lines y error_bad_lines para desactivar la advertencia y el error de línea defectuosos:

 import pandas as pd from StringIO import StringIO data = StringIO("""a,b,c 1,2,3 4,5,6 6,7,8,9 1,2,5 3,4,5""") pd.read_csv(data, warn_bad_lines=False, error_bad_lines=False)