3 Réponses :


0
votes

Vous pouvez utiliser la bibliothèque pandas,

yourcolumn = yourdata['columnname'].values

cela lira votre fichier csv dans un dictionnaire. Ensuite, vous pouvez appeler vos colonnes sous forme de liste par:

import pandas as pd
yourdata = pd.read_csv('yourfile.csv')


1 commentaires

êtes-vous sûr d'ajouter la ligne filename = pd.read_csv ('yourfile.csv'). Votre erreur semble que vous n'avez pas défini la variable.



0
votes

C'est assez simple si vous utilisez csv.DictReader avec une " compréhension de liste a > ":

data:
{'Class': ['4', '5', '9', '7', '6'],
 'High': ['465', '785', '592', '254', '962'],
 'Low': ['452', '54', '25', '78', '46'],
 'Name': ['Sara', 'Joe', 'Amanda', 'Ray', 'Bob']}

Si vous souhaitez obtenir les lignes associées à chacun des champs (et les stocker dans un dictionnaire indexé par les noms de champ), vous pouvez utiliser le zip () pour transposer d'abord les lignes et les colonnes, et utilisez une " compréhension du dictionnaire " comme ceci: p>

import csv
from pprint import pprint

filename = "csv practice file.csv"

# To get all columns.
with open(filename, 'r', newline='') as csvfile:
    csvreader = csv.reader(csvfile)
    fieldnames = next(csvreader)
    rows = zip(*(row for row in csvreader))
    data = {field: list(row) for field, row in zip(fieldnames, rows)}

print('data:')
pprint(data)

Sortie:

import csv

filename = "csv practice file.csv"

with open(filename, 'r', newline='') as csvfile:
    csvreader = csv.DictReader(csvfile)
    fields = csvreader.fieldnames
    rows = [row['Low'] for row in csvreader]

print(fields)
print(rows)


0 commentaires

0
votes

Étant donné que nous avons un fichier avec les données suivantes:

{'col1': ['1', '3', '4'], 'col2': ['2', '4', '5'], 'col3': ['3', '5', '6']}

En utilisant csv.DictReader , nous pouvons transformer les lignes csv dans la structure suivante: p >

import csv
from collections import defaultdict
d = defaultdict(list)
with open(filename, 'r') as csvfile:  
    csvreader = csv.DictReader(csvfile)
    for line in csvreader:
        for k, v in line.items():
            d[k].append(v)

Ceci peut ensuite être utilisé pour parcourir ces dict s et collecter les valeurs par colonne dans un dict cible d . defaultdict le rend un peu plus confortable car nous n'avons pas à vérifier si la clé k existe déjà dans le dict.

{'col1': '1', 'col2': '2', 'col3': '3'}
{'col1': '3', 'col2': '4', 'col3': '5'}
{'col1': '4', 'col2': '5', 'col3': '6'}


0 commentaires