dcc
@dcc
junior

Как редактировать данные на лету при импорте из файла?

Всем привет. Есть scv файл в 600 млн строк. Нужно сделать импорт, но есть проблема. В некоторых строках встречается символ, который является делимтром, из-за этого программа думает, что нет нужного столбца. Может кто сталкивался? Как решить эту проблему?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
читай сначала pandas'om по частям. Затем решай проблему с данными или пропускай плохие строки или применяй к ним свою функцию, которая поможет растолковать что является делимитром в определенной строке и записывай ну или в базу тем же pandas'om или в csv файл и затем импортируй его в базу уже.

читать по частям pandas

import pandas as pd
chunksize = количество строк
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
    # подправляешь свой фрейм

Каждый chunk это фрейм, если у тебя будут проблемы с делимитром он выдаст ошибку. Твоя задача написать код который это дело поправит, pandas имеет очень мощный I/O функционал. https://pandas.pydata.org/docs/user_guide/io.html По ссылке найдешь доки не только насчет ошибок при чтении csv файлов, но и как писать в базу, метод to_sql. Он имеет параметр имя таблицы, соедениение и if_exist, так вот в if_exist поставишь append. То есть каждый твой подправленный кусок файла он будет складывать в таблицу в базе.
https://pandas.pydata.org/docs/reference/api/panda...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы