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 :

Importation de données


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 63
    Par défaut Importation de données
    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
    18
    19
    from csv import *
    import matplotlib.pyplot as plt	
     
    fichier=open("Essai.csv","r")
     
    lecteur=reader(fichier)
    for ligne in lecteur:
        ligne2=ligne[0].split(";")
        print(ligne2)
        individu=ligne2[0]
        csp=ligne2[1]
        sexe=ligne2[2]
        age=ligne2[3]
        enfant=ligne2[4]
        info=ligne2[5]
        ergo=ligne2[6]
        connex=ligne2[7]
     
    fichier.close
    J'ai effectué ce code, cependant lorsque j'exécute ce code cela bloque à la ligne ergo, et je ne sais pas pourquoi.

    De plus, lorsque j'importe mes données, normalement je devrais avoir 8 variables, cependant, il y a des endroits ou j'en ai moins alors que dans d'autres j'ai le bon nombre comme sur l'image suivante :
    Nom : Lignes.png
Affichages : 106
Taille : 1,2 Ko

    Avez-vous une idée de savoir pourquoi cela bloque à la ligne ergo et également pourquoi j'ai pas mes 8 observations dans certains cas ?

    En vous remerciant par avance de votre aide.

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2013
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 80
    Par défaut
    Bonjour,

    Difficile à dire sans avoir le fichier, mais le soucis avec "ergo" survient probablement lorsque "ergo" contient 6 cases (ou moins) ; du coup ligne2[6] est "out of bound"

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par pun79 Voir le message
    J'ai effectué ce code, cependant lorsque j'exécute ce code cela bloque à la ligne ergo, et je ne sais pas pourquoi.
    Python devrait sortir un message d'erreur comme IndexError qui devrait vous être familier si vous avez passé un peu de temps dans les tutos.

    Si vous utilisez le module csv, pas besoin d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ligne2=ligne[0].split(";")
    passez le delimiteur à reader(..., delimiter=';')

    Citation Envoyé par pun79 Voir le message
    De plus, lorsque j'importe mes données, normalement je devrais avoir 8 variables, cependant, il y a des endroits ou j'en ai moins alors que dans d'autres j'ai le bon nombre
    Soit on dit que le fichier est "pourri" parce que toutes les lignes ne contiennent pas 8 colonnes, soit vous gérez l'exception en traitant ce cas là de façon particulière (à définir en fonction du nombre de colonnes).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 63
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    passez le delimiteur à reader(..., delimiter=';')
    Effectivement en passant en reader, ça fonctionne mieux, et je n'ai pas de problème.

    Je vous remercie de votre aide

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 63
    Par défaut
    Du coup j'ai pu faire ce 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import csv
    #import matplotlib.pyplot as plt	
     
    individu=[]
    csp=[]
    sexe=[]
    age=[]
    enfant=[]
    info=[]
    ergo=[]
    connex=[]
     
    with open('essai.csv','r') as csv_file:
        csv_reader=csv.reader(csv_file,delimiter=";")
     
        next(csv_reader)
     
        for ligne in csv_reader:
            individu+=ligne[0]
            csp+=ligne[1]
            sexe+=ligne[2]
            age+=ligne[3]
            enfant+=ligne[4]
            info+=ligne[5]
            ergo+=ligne[6]
            connex+=ligne[7]
    Cependant, lorsque je fais ça, il me sépare les valeurs au dessus de 10, par exemple il me met pour 12 ['1';'2'] alors que je voudrais qu'il me mette ['12'].

    Avez vous une idée pour régler ce problème ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par pun79 Voir le message
    Avez vous une idée pour régler ce problème ?
    Vous avez introduit des listes pour stocker les valeurs de chaque colonne.

    C'est une bonne idée mais avant de faire çà, il faut savoir utiliser les listes et ou vérifier que çà va faire ce que vous en attendez.

    L'intérêt de Python est qu'il est interprété, on peut facilement tester ses constructions en lançant l'interpréteur et effectivement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> L = []
    >>> L+='aa'
    >>> L
    ['a', 'a']
    >>>
    Voyant cela ce n'était pas la peine de modifier votre code avant d'aller revoir comment fonctionnent les listes dans votre tuto. préféré.

    note: ici on suppose que vous voulez apprendre ou améliorer vos connaissances Python ce qui suppose avoir pris le temps d'ouvrir un tuto avant de faire n'importe quoi et demander de l'aide.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Importer des données grace a des *.cvs dans MySQL
    Par Mic0001 dans le forum Installation
    Réponses: 3
    Dernier message: 05/01/2005, 19h26
  2. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32
  3. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  4. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22
  5. Importation de données postgresql
    Par ythierrin dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/10/2003, 22h18

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