IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ouvrir un fichier avec Pandas (extension pas .csv)


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut Ouvrir un fichier avec Pandas (extension pas .csv)
    Bonjour à tous,
    Pour traiter les résultats obtenus sur des bacs de tests je souhaite ouvrir mes fichiers de résultats avec pandas pour en faire des dataframes.
    Les machines renvoient selon leur type :
    - des fichiers ".tsv" qui correspondent csv avec un séparateur tabulation
    - des fichiers ".lvm" qui correspondent csv avec un séparateur virgule
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import FormChoixMachine
    import FormEssais
    import pandas as pd
     
    Machine = FormChoixMachine.ChoixMachine()
    Chemin_Liste = list(FormEssais.Chemin_Liste_Essais())
    DossierEssais = Chemin_Liste[0]
    ListeEssais = Chemin_Liste[1]
     
    for Essai in range(len(ListeEssais)):
        if Machine != "Old_TE77":
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".tsv"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter="\t")
        else:
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".lvm"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter=",")
        print(Lecture_Fichier)
    Et ça coince... Sauriez-vous m'aider à savoir pourquoi ?
    Merci par avance,
    Bonne journée,

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bonjour.

    Ca coince...

    Mais encore ?

    Quel est le message d'erreur ?

    Si c'est une erreur liée aux chemins UNC (accès de vos fichiers à travers un réseau), regardez du côté de la lib pathlib qui gère très bien les chemins UNC.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Bonjour,
    Le message d'erreur varie selon les cas j'ai eu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 453: invalid start byte
    mais aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Daddy\\Desktop\\Démo traitement auto\\Old TE-77\\MyFile.tsv'
    (là je comprends pas pourquoi il a doublé les "\")
    Les fichiers, comme vous le voyez sont en local.
    L'erreur intervient toujours sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lecture_Fichier = pd.read_csv(Chemin, delimiter="\t")
    ou la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lecture_Fichier = pd.read_csv(Chemin, delimiter=",")

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 213
    Par défaut
    Hello,
    Citation Envoyé par DaddyTousucre Voir le message
    Et ça coince... Sauriez-vous m'aider à savoir pourquoi ?
    un message d'erreur ? sur quelle ligne de code ?

    Ami calmant, J.P

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par DaddyTousucre Voir le message
    Et ça coince... Sauriez-vous m'aider à savoir pourquoi ?
    Vous ne pouvez pas utiliser Pandas sans un minimum de connaissances sur les fichiers, leur chemin d'accès (FileNotFoundError), et l'encodage des fichiers texte(UnicodeDecodeError).
    Ce qui demande de passer du temps dans un bons tutos d'apprentissage des bases du langage (avant de se jeter dans Pandas et se faire bouffer tout cru).
    note: c'est en faisant les exercices proposés dans les tutos qu'on apprend à décortiquer les messages d'erreur et leur importance dans la description d'un problème qu'on pourra rencontrer.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 213
    Par défaut
    UnicodeError : il faut vérifier que le fichier source est en utf-8 ce qui ne semble pas le cas quand tu as une erreur (peut-être que le fichier est encodé en ANSI)
    FileNotFoundError : Est-ce que le fichier indiqué dans le message d'erreur est bien présent dans l'ordinateur ( vérifier avec l'explorateur de fichier et ne pas se préoccuper des doubles \).

  7. #7
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Suite aux remarques de jurassic (merci beaucoup), j'ai fait les modifications suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for Essai in range(len(ListeEssais)):
        if Machine != "Old_TE77":
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".TSV"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter="\t", encoding="ANSI")
        else:
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".lvm"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter=",", encoding="ANSI")
        print(Lecture_Fichier)
    J'ai maintenant une nouvelle erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ParserError: Error tokenizing data. C error: Expected 3 fields in line 16, saw 22
    Comme mes données commencent effectivement à la deuxième colonne de la ligne 16, j'ai donc modifié par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for Essai in range(len(ListeEssais)):
        listecol=[]
        for i in range(1,21):
            listecol.append(int(i))
        if Machine != "Old_TE77":
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".TSV"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter="\t", encoding="ANSI", header=15, usecols=listecol)
        else:
            Chemin = DossierEssais + "\\" + ListeEssais[Essai] + ".lvm"
            Lecture_Fichier = pd.read_csv(Chemin, delimiter=",", encoding="ANSI", header=15, usecols=listecol)
        print(Lecture_Fichier)
    Mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValueError: Usecols do not match columns, columns expected but not found: [1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    Comment puis-je résoudre ce problème ?

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 213
    Par défaut
    si il n' y a pas d'infos confidentielles peux-tu nous montrer les 20 premières lignes de ton fichier source ?

  9. #9
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Oui, j'ai anonymisé certaines infos plus sensibles et voici :
    Nom : Premieres_lignes_tsv.PNG
Affichages : 667
Taille : 67,8 Ko
    Merci pour votre aide :-)

    Addendum : Je viens de réaliser qu'il y a une tabulation en trop à la fin de chaque ligne de données qu'il n'y a pas sur la ligne avec les noms de colonne, ce qui pourrait expliquer l'erreur... Comment je pourrais supprimer ça ou lui dire de ne pas le considérer ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2016, 14h28
  2. [Débutant] Ouvrir un fichier avec extension vb
    Par atoss77 dans le forum Développement Windows
    Réponses: 1
    Dernier message: 07/11/2012, 09h57
  3. Réponses: 6
    Dernier message: 30/01/2008, 20h46
  4. Ouvrir fichier avec une extension dmp
    Par flo_opium dans le forum Oracle
    Réponses: 2
    Dernier message: 23/11/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo