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

  1. #1
    Invité
    Invité(e)
    Détection d'une colonne vide d'un fichier CSV
    Bonjour,

    Je souhaite pouvoir récupérer un tableau contenant les valeurs d'une colonne (valeur x) d'un fichier CSV. C'est ce que fait mon code, sauf que, comme on peut le voir, il est nécessaire de convertir les valeurs en float pour pouvoir les exploiter par la suite. Cependant, si l'on va interroger une colonne nulle (4), on a un message d'erreur pour une conversion impossible.

    ID,gain,gain_max
    1,6,4,1
    2,2,8,3
    3,1,3,10
    4,1,5,2
    5,4,8,6
    6,1,1,6
    7,1,3,5
    8,4,2,6
    9,0,4,6
    10,6,1,1

    Ce que je souhaiterais vous demander, c'est dans le cas d'un test d'erreur de pourvoir savoir si la colonne sélectionné est nulle ou pas. J'avais pensé à quelque chose comme le code n°2 mais cela ne fonctionne pas.

    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
     
    f = open('test.csv')
     
        csv_file = csv.reader(f)
     
        next(csv_file)
     
        list_y = []
        list_x = []
     
        for line in csv_file:
            value_list_y = float(line[0])
            value_list_x = float(line[x])
            list_y.append(value_list_y)
            list_x.append(value_list_x)


    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
     
    f = open('test.csv')
     
        csv_file = csv.reader(f)
     
        next(csv_file)
     
        list_y = []
        list_x = []
     
        for line in csv_file:
            value_list_y = float(line[0])
            list_y.append(value_list_y)
            if line[x] is None:
                break
            else:
                value_list_x = float(line[x])
                list_x.append(value_list_x)


    Pourriez-vous m'aider ?

    Cordialement
    BastienM

  2. #2
    Modérateur

    Salut,

    Dans un fichier CSV où les colonnes sont séparées par des ',' une colonne vide serait 1,2,,4 ou 1,2,3,,
    Et quand on lit une colonne "vide" avec le csv.reader, on récupérera une chaîne de caractères vide.

    Pour le reste, soyez plus précis, et quand vous postez un exemple de code pour clarifier les choses, débrouillez vous pour qu'on puisse l'exécuter: si on l'exécute "on voit" le résultat et on peut essayer de comprendre ce qu'il contient. Par contre, si le code est aussi imprécis que la description, çà va être difficile de comprendre (et de vous aider).

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