Wie kann ich am schnellsten eine CSV-Datei analysieren und anzeigen?

2597
Yann-Reun

Ich verwende derzeit Python mit Matplotlib, um 440 + k Zeilen anzuzeigen, .csvaber es dauert 11 secnur eine Spalte anzuzeigen. Mein .csvhat immer das gleiche Format. Gibt es eine Möglichkeit, es schneller zu analysieren? Ich beschließe, alle Spalten in Listen zu speichern und sie dann anzuzeigen.

Hier ist der Code, den ich gemacht habe:

csv_path = "C:/Users/mydata.csv" csv_database = open(csv_path, delimiters=";")  data_dict = csv.DictReader(csv_database, delimiter=";")  current_row = 0  number_list = []  for row in data_dict:  current_row += 1 # Skip heading row  if current_row == 1: continue  # Here I add to a list of strings already created  name_list.append(row["Name"]) # Assuming the header of the column is "Name"  # Here I add to a list of integer  if row['Number'] == 'NULL': int_list.append(0)  elif row['Number'] != " ":  int_list.append(int(row['Number'])) # Assuming the header is "Number"  else: int_list.append(0) 
5
Was hast du schon probiert? Können Sie uns Ihren Beispielcode zur Verfügung stellen? Fazer87 vor 10 Jahren 0
Ich habe es versucht und es funktioniert, aber bevor ich weiter ging, wollte ich fragen, ob ich in die gute Richtung gehe. Wie auch immer, Code hinzugefügt :) Yann-Reun vor 10 Jahren 0
@JeanRene FYI: [Schnellste Python-Bibliothek zum Lesen einer CSV-Datei] (http://softwarerecs.stackexchange.com/q/7463/903). Franck Dernoncourt vor 10 Jahren 2
@FranckDernoncourt Nun, danke, das ist ein wirklich nützlicher Benchmark! Yann-Reun vor 10 Jahren 1

1 Antwort auf die Frage

1
Fazer87

Sieht für mich ok aus. Dies funktioniert für Ihre kleinen CSVs (einige tausend Zeilen).

Als ich große CSV-Dateien (100.000 Zeilen +) analysieren wollte, benutzte ich das Cassava-Modul, das die nativen Module bei weitem durchführte.

Werfen Sie einen Blick auf http://hackage.haskell.org/package/cassava

Hoffe das hilft

Danke, aber nicht Cassava für Haskell? Kann es gut in ein Python-Programm integriert werden? Franck Dernoncourt vor 10 Jahren 2