pandas.read_csv: comment ignorer les lignes de commentaire
Je pense que j'ai mal compris l'intention de read_csv. Si j'ai un fichier " j " comme
# notes
a,b,c
# more notes
1,2,3
Comment puis-je pandas.read_csv ce fichier, en ignorant toutes les '#', a commenté les lignes? Je vois dans l'aide "commentaire" de lignes n'est pas pris en charge, mais il indique une ligne vide doit être retourné. Je vois une erreur
df = pandas.read_csv('j', comment='#')
CParserError: Erreur de segmentation des données. C erreur: Attendu 1 les champs de la ligne 2, saw 3
Je suis actuellement sur
In [15]: pandas.__version__
Out[15]: '0.12.0rc1'
Sur la version 0.12.0-199-g4c8ad82':
In [43]: df = pandas.read_csv('j', comment='#', header=None)
CParserError: Erreur de segmentation des données. C erreur: Attendu 1 les champs de la ligne 2, saw 3
source d'informationauteur mathtick | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Je crois donc que dans les dernières versions des pandas (version 0.16.0), vous pouvez jeter dans le
comment='#'
paramètre danspd.read_csv
et cela doit passer en commentaire les lignes.Ces github questions montre que vous pouvez le faire:
Voir la documentation sur les
read_csv
: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.htmlUne solution de contournement consiste à spécifier skiprows d'ignorer les quelques premières entrées:
Sinon
read_csv
devient un peu confus:Cela semble être le cas dans 0.12.0, j'ai déposé un rapport de bogue.
Comme Viktor points, vous pouvez utiliser dropna pour supprimer le NaN après le fait... (il y a un récente de problème d'avoir des lignes commentées être complètement ignoré):
Remarque: par défaut, l'indice de "donner" le fait, il y avait des données manquantes.
Je suis sur les Pandas version 0.13.1 et ce commentaires-en-csv problème me tracasse toujours.
Voici ma solution:
Autrement avec
pd.read_csv(filename, comment='#')
- je obtenir