cómo evitar que los pandas hagan la primera fila en nombres de columna

Estoy creando un pandas DataFrame y quiero mantener la primera fila. Sin embargo, se sigue convirtiendo en nombres de columna. Intenté los headers=False pero esto solo lo eliminé por completo.

Tengo una cadena ( st = '\n'.join(lst) ) que convierto en un objeto similar a un archivo ( io.StringIO(st) ), luego io.StringIO(st) el csv partir de ese objeto de archivo.

Desea header=None el tipo False se promueve a int en 0 vea el énfasis de los documentos mío:

encabezado: int o lista de entradas, número (s) de fila ‘inferir’ predeterminado para usar como nombres de columna y el inicio de los datos. El comportamiento predeterminado es como si se estableciera en 0 si no se pasan nombres, de lo contrario, Ninguno . Pase explícitamente header = 0 para poder reemplazar los nombres existentes. El encabezado puede ser una lista de enteros que especifican ubicaciones de fila para un índice múltiple en las columnas, por ejemplo, [0,1,3]. Las filas intermedias que no se especifiquen se omitirán (por ejemplo, en este ejemplo se omiten 2). Tenga en cuenta que este parámetro ignora las líneas comentadas y las líneas vacías si skip_blank_lines = True, por lo que header = 0 denota la primera línea de datos en lugar de la primera línea del archivo.

Puedes ver la diferencia de comportamiento, primero con header=0 :

 In [95]: import io import pandas as pd t="""a,b,c 0,1,2 3,4,5""" pd.read_csv(io.StringIO(t), header=0) Out[95]: abc 0 0 1 2 1 3 4 5 

Ahora con None :

 In [96]: pd.read_csv(io.StringIO(t), header=None) Out[96]: 0 1 2 0 abc 1 0 1 2 2 3 4 5 

Tenga en cuenta que en la última versión 0.19.1 , esto ahora generará un TypeError :

 In [98]: pd.read_csv(io.StringIO(t), header=False) 

TypeError: pasar un bool al encabezado no es válido. Use header = None para no header o header = int o list-like of ints para especificar la (s) fila (s) que forman los nombres de columna

Creo que necesitas el header=None parámetro header=None para read_csv :

Muestra:

 import pandas as pd from pandas.compat import StringIO temp=u"""a,b 2,1 1,1""" df = pd.read_csv(StringIO(temp),header=None) print (df) 0 1 0 ab 1 2 1 2 1 1