Какой самый быстрый способ проанализировать и отобразить файл `.csv`?

2492
Yann-Reun

В настоящее время я использую python с matplotlib для отображения 440+ k строк, .csvно 11 secдля отображения требуется только один столбец. У меня .csvвсегда одинаковый формат. Есть ли способ разобрать это быстрее? Я решил сохранить все столбцы в списки, а затем отобразить их.

Вот код, который я сделал:

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
Что ты уже пробовал? Можете ли вы предоставить пример кода для нас, чтобы прокомментировать? Fazer87 9 лет назад 0
Я пытался, и это работает, но прежде чем идти дальше, я хотел спросить, иду ли я в правильном направлении. Во всяком случае, код добавлен :) Yann-Reun 9 лет назад 0
@JeanRene FYI: [Самая быстрая библиотека Python для чтения файла CSV] (http://softwarerecs.stackexchange.com/q/7463/903). Franck Dernoncourt 9 лет назад 2
@FranckDernoncourt Хорошо, спасибо, это действительно полезный тест! Yann-Reun 9 лет назад 1

1 ответ на вопрос

1
Fazer87

Выглядит нормально для меня. Это будет работать для ваших мелких CSV (под пару тысяч строк).

Когда мне пришлось tp анализировать огромные CSV-файлы (100 тыс. Строк +) - я использовал модуль Cassava, который долгое время выполнял нативные модули.

Взгляните на http://hackage.haskell.org/package/cassava

Надеюсь это поможет

Спасибо, но не кассава для Хаскелла? Хорошо ли он интегрируется с программой на Python? Franck Dernoncourt 9 лет назад 2