#python #pandas
#python #pandas
Вопрос:
Я использовал цикл for для извлечения текста из изображений. Итак, я получаю ошибки при преобразовании списка в фрейм данных python pandas.
info = []
for item in dirs:
if os.path.isfile(path item):
for a in x:
img = Image.open(path item)
crop = img.crop(a)
text = pytesseract.image_to_string(crop)
info.append(text)
df = pd.DataFrame([info], colnames=['col1','col2'])
df
Ожидаемый результат: хранение данных в фрейме данных по строкам.
Да, список — это не список из двух элементов. у меня есть 14 предопределенных столбцов. Вот еще один код для i в диапазоне (информация): df.loc[i] = [ информация для n в диапазоне (14))
Комментарии:
1. было бы полезно поделиться ошибкой (пожалуйста, обновите вопрос)
2.
df = pd.DataFrame({'col1':info,'col2':info})
3. Не работает @il
Ответ №1:
Пожалуйста, проверьте документацию для .DataFramehttps://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
Строка, в которой вы создаете свой фрейм данных
df = pd.DataFrame([info], colnames=[‘col1’, ‘col2’]
В конце отсутствуют круглые скобки, вместо столбцов используются colnames, список заключен в ненужные квадратные скобки и создается два столбца, где вам нужен только один.
Пожалуйста, укажите точную ошибку
Ответ №2:
Я думаю, здесь есть две проблемы.
Прежде всего, вы переходите к фрейму данных, [info]
хотя info
это уже список. Вы можете просто передать этот список как есть.
Теперь, когда вы передаете список элементов в качестве аргумента, вы пытаетесь преобразовать список в фрейм данных с двумя столбцами: colnames=['col1','col2']
. И ключевое слово — columns
not colnames
.
Я думаю, что в этом проблема. Ваш список не является списком из двух элементов (как [[a, b], [c, d]]
). Просто используйте:
df = pd.DataFrame(info, columns=['col1'])
Лучшие
Комментарии:
1. df = pd.Фрейм данных (info) используется, когда у вас нет предопределенных столбцов. Так что этот, я думаю, не сработает.
2. Да, список — это не список из двух ит-групп.