Это работает для меня вышеупомянутых данных:
import io
import pandas as pd
def add_delimiters(fpath, delimiter=','):
s_data = ''
max_num_delimiters = 0
with open(fpath, 'r') as f:
for line in f:
s_data += line
delimiter_count = line.count(delimiter)
if delimiter_count > max_num_delimiters:
max_num_delimiters = delimiter_count
s_delimiters = delimiter * max_num_delimiters + '\n'
return io.StringIO(s_delimiters + s_data)
pd.read_csv(add_delimiters('data.csv'))
Простой вызов pd.read_csv('data.csv', header=None)
выдает ParseError при попытке загрузки данных.ParserError: Error tokenizing data. C error: Expected 1 fields in line 2, saw 2
Кажется, что вместо необходимости вручную редактировать данные путем добавления дополнительных разделителей в первую строку, это должно быть поведение по умолчанию.Или, по крайней мере, должен быть флаг, который мы можем поднять, чтобы сделать эту работу.