У меня интересная проблема.
У меня есть очень большой (более 300 МБ, более 10 000 000 строк / строк в файле) файл CSV с точками данных временных рядов внутри. Каждый месяц я получаю новый CSV-файл, который почти совпадает с предыдущим файлом, за исключением нескольких новых строк, которые были добавлены и / или удалены, и, возможно, несколько строк были изменены.
Я хочу использовать Python для сравнения двух файлов и определения, какие строки были добавлены, удалены и изменены.
Проблема в том, что файл очень большой, поэтому мне нужно решение, которое может обрабатывать файлы большого размера и эффективно выполнять их в течение разумного времени, чем быстрее, тем лучше.
Пример того, как может выглядеть файл и его новый файл:
Старый файл
A,2008-01-01,23
A,2008-02-01,45
B,2008-01-01,56
B,2008-02-01,60
C,2008-01-01,3
C,2008-02-01,7
C,2008-03-01,9
etc...
Новый файл
A,2008-01-01,23
A,2008-02-01,45
A,2008-03-01,67
(добавлено)
B,2008-01-01,56
B,2008-03-01,33
(удалено и добавлено)
C,2008-01-01,3
C,2008-02-01,7
C,2008-03-01,22
(изменено)
etc...
В основном 2 файла можно рассматривать как матрицы, которые нужно сравнивать, и я начал думать об использовании PyTable. Будем весьма благодарны за любые идеи о том, как решить эту проблему.