Lire multi-index sur les colonnes du fichier csv
J'ai un .fichier csv qui ressemble à ceci:
Male, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81
Je veux lire que dans un df, de sorte que j'ai:
Male Female
R L R
0 .86 .67 .88 .78 .81
J'ai fait:
df = pd.read_csv('file.csv', header=[0,1])
Mais headers
ne pas le couper. Qui résultats dans
Empty DataFrame
Columns: [(Male, R), (Male, R), (Male, L), (Female, R), (Female, R)]
Index: []
Encore, les docs sur les en-têtes dit:
(...)Can be a list of integers that specify row
locations for a multi-index on the columns E.g. [0,1,3]
Ce que je fais mal? Comment puis-je le faire fonctionner?
OriginalL'auteur nutship | 2014-01-23
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème, c'est que vous avez dupliqué colonnes: deux ( Femme, R).
Ne sais pas si c'est un bug ou de la copie de l'colonnes sont inacceptables. Voici une solution pour vous:
D'abord lire le fichier csv avec tupleize_cols=True
Puis convertir le type de la colonne de l'Index à MultiIndex
.86, .67, .88, .78, .81
Désolé pour l'induire en erreur. Semble qu'il est un autre bug à corriger. Mettrai à jour ce post, alors j'ai trouver un autre chemin pour atteindre votre objectif
Merci pour la bonne 🙂
C:\Python\Python36_64b\lib\site-packages\pandas\io\parsers.py:813: FutureWarning: Le " tupleize_cols l'argument a été désapprouvée et sera supprimée dans une future version. Colonne de n-uplets sera alors toujours être converti à MultiIndex. auto.options, auto.moteur = auto._clean_options(options, moteur)
OriginalL'auteur waitingkuo
De la version 0.21 des pandas, MultiIndexes sont créés par défaut, de sorte
df = pd.read_csv('file.csv', header=[0,1])
devrait faire le travail.OriginalL'auteur William de Vazelhes