У меня есть большой CSV-файл, содержащий 15 столбцов и примерно 1 миллион строк. Я хочу разобрать данные в tinyDB. Код, который я использую, приведен ниже:
import csv
from tinydb import TinyDB
db = TinyDB('db.monitor')
table = db.table('Current')
i=0
datafile = open('newData.csv', 'rb')
data=csv.reader(datafile, delimiter = ';')
for row in data:
table.insert({'WT_ID': row[0], 'time': row[1], 'MeanCurrent': row[2], 'VapourPressure': row[3], 'MeanVoltage':row[4], 'Temperature': row[5], 'Humidity': row[6], 'BarPressure': row[7], 'RPM': row[8], 'WindSector': row[9], 'WindSpeed': row[10], 'AirDensity': row[12], 'VoltageDC': row[13], 'PowerSec': row[14], 'FurlingAngle': row[15]})
i=i+1
print i
Однако на самом деле это занимает вечность. Я установил переменную i для отслеживания прогресса, и если в первых строках он работает быстро, то сейчас прошло больше часа, и он проанализировал около 10000 строк в темпе почти 1 Гц.
Я не мог найти ничего подобного, поэтому любая помощь будет оценена по достоинству.
Спасибо
insert_multiple()
- person Mike Scotty   schedule 23.12.2016insert_multiple
ускорили мою вставку на порядки. Точно не измерено, но примерно от 50 секунд до 1 или 2... Таким образом, использованиеinsert_multiple
является ключевым здесь! - person klaas   schedule 18.02.2018