Конвертировать вывод строки pytesseract в pandas df - PullRequest
1 голос
/ 20 апреля 2019

Мне в течение дня выдавались квитанции от Subway с подробным описанием продаж, работников и т. Д., И мне необходимо извлечь данные для класса управления.

Я сфотографировал квитанции и обработал их с помощью pytesseract в строкуразделены \ n, но теперь не знают, как использовать pd.read_csv и StringIO, чтобы преобразовать его в фрейм данных.Не надо, если это лучший способ сделать это.Также, возможно, потребуется отредактировать изображение с помощью cv2, чтобы оно лучше обрабатывалось.

import numpy as np
import pytesseract
from PIL import Image
import pandas as pd

path = 'C:\\attachments\\'

monday = pytesseract.image_to_string(Image.open(path+'file1-1.jpeg'),lang='eng')

from StringIO import StringIO
mon = pd.read_csv(StringIO(monday),sep=r'\s',lineterminator=r'\n')
print(mon)

Это часть переменной понедельника, которая используется в настоящее время.

"\nTIME HOURS :\nPERIOD SALES UNITS WORKED PROD SPLH\nZhan emmoo «Ct (iti ;:t‘«é‘«‘i CSD\n3A-4A $0.00 0 0 0 $0.00\n44-54 =: $0.00 SssOO 0 0 $0.00\n5A-6A $0.00 0 0 0 $0.00\nbA-7A $0.00 0 0 0 $0.00\n7A-BA =s«$0.00-Sss«OOs«*O0.80 0 $0.00\nBA-9A 60,00 . Qge2.00 0 $0.00\nQA-10A $33.68 6 2,00 3.00 $16.84\n104-114 $61.07 9 2.13 4.23 $28.67\n11A-12P$238.82 33 5,00 6.60 $47.76"

Это должно выглядеть как кадр данных:

Period Sales Units Worked Prod SPLH
3A-4A  $0.00  0      0     0   $0.00
bA-7A  $0.00  0      0     0   $0.00

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете получить результаты от tesseract непосредственно в фрейме данных Pandas:

monday = pytesseract.image_to_data(Image.open(path+'file1-1.jpeg'),lang='eng', output_type='data.frame')

Теперь monday - это фрейм данных, который, однако, нуждается в дополнительной обработке от вас, так как содержит хотя бы строку длякаждый уровень в иерархии.Проверьте вывод и посмотрите, как вы хотите его организовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...