leer exportar datos crear con columnas archivos archivo abrir csv pandas multi-index

exportar - Leer multi-índice en las columnas del archivo csv



leer columnas en python (2)

A partir de la versión 0.21 de pandas, los MultiIndexes se crean de manera predeterminada, por lo que df = pd.read_csv(''file.csv'', header=[0,1]) debe hacer el trabajo.

Tengo un archivo .csv que se ve así:

Male, Male, Male, Female, Female R, R, L, R, R .86, .67, .88, .78, .81

Quiero leer eso en un df, para que tenga:

Male Female R L R 0 .86 .67 .88 .78 .81

Yo si:

df = pd.read_csv(''file.csv'', header=[0,1])

Pero los headers no lo cortan. Lo que resulta en

Empty DataFrame Columns: [(Male, R), (Male, R), (Male, L), (Female, R), (Female, R)] Index: []

Sin embargo, los documentos en los encabezados dicen:

(...)Can be a list of integers that specify row locations for a multi-index on the columns E.g. [0,1,3]

¿Qué estoy haciendo mal? ¿Cómo puedo hacer que funcione?


Creo que el problema es que tienes columnas duplicadas: dos (Mujer, R).

No estoy seguro de si es un error o las columnas duplicadas son inaceptables. Aquí hay una solución para usted:

Primero lea el csv con tupleize_cols = True

In [61]: df = pd.read_csv(''test.csv'', header=[0, 1], skipinitialspace=True, tupleize_cols=True) In [62]: df Out[62]: (Male, R) (Male, R) (Male, L) (Female, R) (Female, R) 0 0.67 0.67 0.88 0.81 0.81 [1 rows x 5 columns]

Luego convierta el tipo de la columna de Índice a MultiIndex

In [63]: df.columns = pd.MultiIndex.from_tuples(df.columns) In [64]: df Out[64]: Male Female R R L R R 0 0.67 0.67 0.88 0.81 0.81 [1 rows x 5 columns]