Создание фрейма данных из функции, которая возвращает 8 значений

#pandas #dataframe #loops

Вопрос:

 for image_file in glob.iglob('C:\pathtofolder\*.jpg'):
    HP, HR, Glass, EV, FV, Glared, S, L = faceApp(image_file)
    faceDeets = pd.DataFrame({'HP': [HP], 'HR': [HR], 'Glass': [Glass], 'EV': [EV], 'FV': [FV], 'Glared': [Glared], 'S': [S], 'L': [L]})
    time.sleep(5)
 

Я хотел бы создать фрейм данных для каждого файла image_file. Приведенный выше код возвращает значения только для одного изображения. Созданный фрейм данных

Ответ №1:

Ты можешь попробовать это:

 data = []
for image_file in glob.iglob('C:\pathtofolder\*.jpg'):
    data.append(faceApp(image_file))
    time.sleep(5)
df = pd.DataFrame(data, columns=['HP', 'HR', 'Glass', 'EV', 'FV', 'Glared', 'S', 'L'])
 

Комментарии:

1. Ошибка типа: не удается объединить объект типа ‘<class ‘str’>’; допустимы только объекты серии и фрейма данных. Я получил эту ошибку типа

2. @MahejabeenNidhi, я все исправил.

3. Еще раз спасибо! Я действительно зациклился на этом. Теперь есть ошибка ValueError: Форма передаваемых значений (8, 1), индексы подразумевают (8, 8)

4. Я попытался исправить это с помощью data = np.array(данные).reshape(1,8), и это возвращает только одну строку

5. Моя вина! Действительно извините, я забыл добавить данные… Теперь это должно сработать. Если это не сработает, я уволен 🙂