3 Réponses :
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')
ê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.
C'est assez simple si vous utilisez 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 Sortie: 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']}
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)
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)
É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'}