Как мне преобразовать список в фрейм данных python

#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. Да, список — это не список из двух ит-групп.