У меня есть слегка поврежденный CSV-файл, который я хочу предварительно обработать перед чтением с помощью pandas.read_csv (), т. Е. Выполнить поиск / замену в нем.
Я попытался открыть файл и выполнить предварительную обработку в генераторе, который я затем передал read_csv ():
def in_stream():
with open("some.csv") as csvfile:
for line in csvfile:
l = re.sub(r'","',r',',line)
yield l
df = pd.read_csv(in_stream())
К сожалению, это просто бросает
ValueError: Invalid file path or buffer object type: <class 'generator'>
Хотя, глядя на источник Panda, я ожидал, что он сможет работать с итераторами, то есть с генераторами.
Я нашел только эту [статью] ( Использование пользовательского объекта в pandas.read_csv () ), в которой рассказывается, как обернуть генератор в объект, похожий на файл, но, похоже, он работает только с файлами в байтовом режиме.
Итак, в конце я ищу шаблон для построения конвейера, который открывает файл, читает его построчно, разрешает предварительную обработку и затем передает его, например, в файл. pandas.read_csv ().