0
votes

Répertorie les listes à l'intérieur de la lecture de CSV

Ceci est mon code:

['hello', 'hello', 'one', 'two', 'three']


4 commentaires

Pourrions-nous voir la structure du fichier CSV?


Vous avez donné la sortie, mais nous devons également connaître l'entrée!


Chaque ligne est une liste même s'il n'y a qu'un seul élément de la ligne - votre résultat est donc naturel.


La voie propre suggère d'utiliser csv , bien sûr. Mais vous lisez à partir d'un fichier en plainte et vous connaissez votre séparateur - essentiellement, vous pouvez définir des moyens propres à obtenir les données souhaitées de la manière dont vous voulez. Mais avant de le faire: imprimez lecteur et ligne , voir quel type ils sont et vérifier le format de contenu. Vous verrez les structures de liste que vous obtenez, puis pour être en mesure de boucler les bacs, ou d'ajouter des valeurs directes à l'aide de leur index, comme noms.append (rangée [0]) . C'est juste une pensée générale, sans connaître le contenu du CSV.


5 Réponses :


0
votes

Utilisation de la liste par défaut:

import numpy as np
new_names = np.array(names).flatten()


0 commentaires

1
votes

Vous pouvez le faire sur les noms: xxx

ou vous pouvez faire ci-dessous dans votre cas: xxx


0 commentaires

0
votes

Ceci se produit car csv.reader code> iTère à travers les lignes sous forme de liste. Il semble que vous n'avez qu'un seul élément dans chaque ligne de votre CSV?

Si tel est bien le cas, et c'est toujours le cas, vous pouvez faire deux choses différentes: p>

1) P >

with open(csv_file) as file:
    reader = csv.reader(file)
    for row in reader:
        name = row
        names.extend(name)


0 commentaires

0
votes

Un moyen le plus simple de le faire:

for row in reader:
    [name] = row
    names.append(name)
print names


0 commentaires

0
votes

Solution d'une ligne:

names = [['hello'], ['hello'], ['one'], ['two'], ['three']]

list(map(lambda x: x[0], names))


0 commentaires