Chaque fois que je lis le fichier CSV sous forme de liste en utilisant cette méthode longue, pouvons-nous simplifier cela?
filename = 'mtms_excelExtraction_m_Model_Definition.csv'
Ana_Type = []
Ana_Length = []
Ana_Text = []
Ana_Space = []
with open(filename, 'rt') as f:
reader = csv.reader(f)
try:
for row in reader:
Ana_Type.append(row[0])
Ana_Length.append(row[1])
Ana_Text.append(row[2])
Ana_Space.append(row[3])
except csv.Error as e:
sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
6 Réponses :
Vous pouvez utiliser un dicterreader code> < Pré> xxx pré>
Cela vous donnera une seule liste code> de dict code> objet, une par ligne. p> p>
Ceci pourrait être utile:
['Date', '2020-03-03', '2020-03-04', '2020-03-05', '2020-03-06']
C'est une bonne opportunité pour vous de commencer à utiliser Pandas et travailler avec DataFrames.
import pandas as pd df = pd.read_csv(path_to_csv)
Celui-ci est essentiellement la manière dont une façon numpue de traitement du fichier CSV, sans utiliser NUMPY.
Que ce soit mieux que votre méthode d'origine est proche d'une question de goût. Il a en commun avec la méthode numpy ou pandas le fait de charger l'ensemble du fichier en mémoire et de le transposer dans des listes: Il utilise moins de code et construire des tableaux avec des compréhensions au lieu de répétées au lieu de répétées. Ajoute, mais plus de mémoire (comme numppy ou pandas). P> Selon la manière dont vous traitez ultérieurement les données, les numpoprités ou les pandas pourraient être une bonne option. Parce que IMHO ne les utilise que pour charger un fichier CSV dans la liste ne vaut pas la peine. P> p>
Essayez ceci suivant p> suivant p>
Les appels répétitifs vers Ana_Types, Ana_Length, Ana_Text, Ana_Space = [list(x) for x in zip(*reader)]
Vous pouvez utiliser un
dicterreader code>au lieu.Vous pouvez le lire à l'aide de Pandas, puis divisez le Dataframe à l'aide de méthodes de chaîne.
Les pandas ou NUMPY ont-ils une option ici? Ils sont ciblés comme traitement des tableaux multidimensionnels (pour des tables numpées) ou 2D (pour les pandas) avec des fonctions pouvant traiter directement les fichiers CSV.