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]