numpy loadtxt ignorer la première ligne
J'ai un petit problème lorsque j'essaie d'importer des données à partir de fichiers CSV avec numpy est loadtxt fonction. Voici un exemple du type de fichiers de données que j'ai.
L'appeler " datafile1.csv':
# Comment 1
# Comment 2
x,y,z
1,2,3
4,5,6
7,8,9
...
...
# End of File Comment
Le script que j'ai pensé à travailler pour cette situation ressemble:
import numpy as np
FH = np.loadtxt('datafile1.csv',comments='#',delimiter=',',skiprows=1)
Mais, j'obtiens une erreur:
ValueError: could not convert string to float: x
Cela me dit que la kwarg 'skiprows' est de ne pas sauter l'en-tête, c'est de sauter sur la première ligne de commentaires. Je pourrais simplement assurez-vous que skiprows=3, mais la complication est que j'ai un très grand nombre de fichiers, qui ne sont pas tous nécessairement le même nombre de lignes commentées en haut du fichier. Comment puis-je faire en sorte que lorsque j'utilise loadtxt je suis le seul à obtenir les données réelles dans ce genre de situation?
P. S. - je suis ouvert à bash solutions, trop.
OriginalL'auteur astromax | 2013-06-17
Vous devez vous connecter pour publier un commentaire.
Sauter la ligne de commentaire manuellement à l'aide du générateur d'expression:
OriginalL'auteur falsetru
Créer votre propre fonction de filtre, tels que:
OriginalL'auteur Jon Clements
C'est juste un peu de modification @Jon Clements répondre par l'ajout d'un paramètre facultatif "en-tête", étant donné que, dans certains cas, le fichier csv contient des lignes de commentaires (qui commence par #), mais n'a pas la ligne d'en-tête.
OriginalL'auteur JeffZheng