PDF táblázatok pandas-ba való alakítása. Olyan PDF-ekre, amelyek képekből vannak - tehát fényképek, szkennelések, vagy hasonló. Ez magában foglalja a sima fényképek (JPG, PNG) szövegfelismerését is. Az átalakítási folyamat három lépéses:

  1. PDF oldalainak képekké alakítása
  2. Szövegfelismerés a képeken (ezt angolul úgy hívják OCR - optical character recognition)
  3. Szöveg táblázattá alakítása

Installs

ImageMagick és GhostSCript

Kell hozzá ImageMagick és GhostScript.

Poppler

Install Poppler, add to PATH

Go to this page and download the binary of your choice. In this example we will download and use poppler-0.68.0. Extract the archive file poppler-0.68.0_x86.7z into C:\Program Files\poppler. Thus the directory structure should look something like this:

C:
└ Program Files
└ poppler
└ poppler-0.68.0
└ bin
└ include
└ lib
└ share

Windows: Add C:\Program Files\poppler\poppler-0.68.0\bin to your system PATH.

Tesseract

Add C:\Program Files\Tesseract-OCR to your system PATH.

Restart Python

Ezután indítsd újra az Anacondát és a JupyterLabet és a Python-t.


In [1]:
!pip install Pillow


Requirement already satisfied: Pillow in c:\programdata\anaconda3\lib\site-packages (6.2.1)

In [2]:
!pip install pdf2image


Requirement already satisfied: pdf2image in c:\programdata\anaconda3\lib\site-packages (1.10.0)
Requirement already satisfied: pillow in c:\programdata\anaconda3\lib\site-packages (from pdf2image) (6.2.1)

In [3]:
!pip install pytesseract


Requirement already satisfied: pytesseract in c:\programdata\anaconda3\lib\site-packages (0.3.0)
Requirement already satisfied: Pillow in c:\programdata\anaconda3\lib\site-packages (from pytesseract) (6.2.1)

In [4]:
!pip install opencv-python


Requirement already satisfied: opencv-python in c:\programdata\anaconda3\lib\site-packages (4.1.2.30)
Requirement already satisfied: numpy>=1.14.5 in c:\programdata\anaconda3\lib\site-packages (from opencv-python) (1.17.4)

1


In [5]:
from PIL import Image 
import sys 
from pdf2image import convert_from_path 
import os

In [6]:
# Path of the pdf 
PDF_file = "Lista inscrisi Admitere Licenta sept 11.09.2015.pdf"

In [7]:
if not os.path.exists('pdf/'+PDF_file+'/'):
    os.makedirs('pdf/'+PDF_file+'/')

Készítünk egy mappát, ahová a PDF oldalait exportáljuk képként.


In [40]:
# Store all the pages of the PDF in a variable 
#a masodik szam a felbontas, ezt 300-600 kozott probalgasd
pages = convert_from_path(PDF_file, 300) 
  
# Counter to store images of each page of PDF to image 
image_counter = 1
  
# Iterate through all the pages stored above 
for page in pages: 
  
    # Declaring filename for each page of PDF as JPG 
    # For each page, filename will be: 
    # PDF page 1 -> page_1.jpg 
    # PDF page 2 -> page_2.jpg 
    # PDF page 3 -> page_3.jpg 
    # .... 
    # PDF page n -> page_n.jpg 
    filename = 'pdf/'+PDF_file+"/page_"+str(image_counter)+".jpg"
    print(image_counter,'oldal kész..')
      
    # Save the image of the page in system 
    page.save(filename, 'JPEG') 
  
    # Increment the counter to update filename 
    image_counter = image_counter + 1


1 oldal kész..
2 oldal kész..
3 oldal kész..
4 oldal kész..
5 oldal kész..

2

Szövegfelismerés a képeken


In [9]:
import pytesseract

In [47]:
# Variable to get count of total number of pages 
filelimit = image_counter-1
  
# Creating a text file to write the output 
outfile = 'pdf/'+PDF_file+"/text.txt"
  
# Open the file in append mode so that  
# All contents of all images are added to the same file 
f = open(outfile, "a") 
  
# Iterate from 1 to total number of pages 
for i in range(1, filelimit + 1): 
  
    # Set filename to recognize text from 
    # Again, these files will be: 
    # page_1.jpg 
    # page_2.jpg 
    # .... 
    # page_n.jpg 
    filename = 'pdf/'+PDF_file+"/page_"+str(i)+".jpg"
          
    # Recognize the text as string in image using pytesserct 
    text = str(((pytesseract.image_to_string(Image.open(filename))))) 
    print(i,'oldal kész..')
  
    # The recognized text is stored in variable text 
    # Any string processing may be applied on text 
    # Here, basic formatting has been done: 
    # In many PDFs, at line ending, if a word can't 
    # be written fully, a 'hyphen' is added. 
    # The rest of the word is written in the next line 
    # Eg: This is a sample text this word here GeeksF- 
    # orGeeks is half on first line, remaining on next. 
    # To remove this, we replace every '-\n' to ''. 
    text = text.replace('-\n', '')     
  
    # Finally, write the processed text to the file. 
    f.write(text) 

# Close the file after writing all the text. 
f.close()


1 oldal kész..
2 oldal kész..
3 oldal kész..
4 oldal kész..
5 oldal kész..

3


In [48]:
import pandas as pd

Felismert szöveg beolvasása


In [325]:
pages=open(outfile,'r').read()

Sorok felosztása újsork karakterek \n szerint


In [326]:
lines=[i for i in pages.split('\n') if i]

Csak azokat a sorokat tartjuk meg, amelyek számmal kezdődnek


In [327]:
good_lines=[line for line in lines if line[0].isdigit()]

Tipikus hibás felismert karaterek javítása


In [328]:
good_lines=[line.replace('_',' ').replace('. ',' ').replace('-',' ').replace('—',' ')\
     .replace('~',' ').replace('=',' ').replace('  ',' ').replace('  ',' ')\
     .replace('»',' ')for line in good_lines]

In [329]:
good_lines[:10]


Out[329]:
['1 4696 ACHIM O.A ANDREEA MAGDALENA 9,56 9,50 9,70 19 18 16 14 13 11 15 20 12',
 '3 4441 ALBERT J CSILLA EDIT 6,76 5,70 7,80 48 ,',
 '2 208 ALBERT Vv IULAN 6,10 5,20 600 51.',
 '4 4500 ALEXAN A MARIOARA 7,82 7,00 855 41',
 '5 4565 AMBRUS T TIBOR 8,36 9,10 940 46.',
 '6 4424 ANDREI C IOAN CLAUDIU 7,66 7,00 6,80 19.',
 '7 210 ASANOV A REFAT 7,20 7,20 7,20 36 37',
 '8 4913 BACIU I IOAN ALEXANDRU 7,11 6,60 7,55 59 61',
 '9 4509 BALANESCU D.M RAZVAN SAUL 7,75 9,85 545 12 13',
 '10 4962 BALAS I MARIA ELENA 7,73 7,85 7,60 70.']

Hibás sorok további kiszűrése manuálisan


In [330]:
for i,l in enumerate(good_lines):
    print(str(i)+':::'+l)


0:::1 4696 ACHIM O.A ANDREEA MAGDALENA 9,56 9,50 9,70 19 18 16 14 13 11 15 20 12
1:::3 4441 ALBERT J CSILLA EDIT 6,76 5,70 7,80 48 ,
2:::2 208 ALBERT Vv IULAN 6,10 5,20 600 51.
3:::4 4500 ALEXAN A MARIOARA 7,82 7,00 855 41
4:::5 4565 AMBRUS T TIBOR 8,36 9,10 940 46.
5:::6 4424 ANDREI C IOAN CLAUDIU 7,66 7,00 6,80 19.
6:::7 210 ASANOV A REFAT 7,20 7,20 7,20 36 37
7:::8 4913 BACIU I IOAN ALEXANDRU 7,11 6,60 7,55 59 61
8:::9 4509 BALANESCU D.M RAZVAN SAUL 7,75 9,85 545 12 13
9:::10 4962 BALAS I MARIA ELENA 7,73 7,85 7,60 70.
10:::11 44114 BALINT c ROBERT ISTVAN 7,93 6,80 9,00 36 37,16 18
11:::12 4571 BALOG | MARIAN BOGDAN 6,80 5,25 6,10 46.
12:::13 4526 BANDICI .M RAZVAN ADRIAN 8,93 5,80 815 46.
13:::15 4902 BARABAS L SZENDE 7,01 7,05 7,60 64 59 67
14:::14 4572 BARABAS O BENIAMIN OVIDIU 8,10 650 8,60 11 16 14 15
15:::16 4508 BARATI Vv NINEL EMIL 6,95 6,30 7,50 47.46 41
16:::17 4695 BARDAN Vv SIMINA 9,30 8,70 9,20 37 18 27 36 16 19
17:::18 4669 BARSAN S MARIA ANCA 7,65 6,30 8,30 41 44 46
18:::19 4651 BEJINARIU Vv GIANINA ANAMARIA 6,18 5,20 5,50 11 16 04 14 13 15
19:::20 4462 BENCZE L NOEMI 9,18 9,25 8,90 47 46
20:::21 4570 BERCHI t CRISTINA MARIA 7,53 6,10 7,60 46.
21:::22 222 BERKI J ANDREEA ALEXANDRA 7,40 .7,90 9,05 53
22:::23 4602 BEUCA D VASILINA 8,16 7,00 7,50 16 13 12
23:::24 4611 BIDIAN I CARMEN ANDREEA 8,23 8,60 850 41
24:::25 4961 BILICI Vv CRISTIAN 7,38 5,50 825 70.
25:::26 213 BIZGU A DIANA 8,25 7,00 9,00 36.
26:::27 4557 BLAI D.| | DAN FLORIN 6,66 5,45 5,65 46 41 47 43
27:::28 4676 BLAJAN G ANDREEA ROXANA 7,80 6,20 895 O07 16 11 18 19 04 14 15
28:::29 4671 BOEREAN PL ALISA PAULA 6,00 6,80 5,10 12.15 13 18 16 20 19 14 11
29:::30 4909 BOGDAN ROBERT "6,20 5,35 8,30 67.
30:::31 4490 BOICIUC | VASILE IONEL 6,13 6,70 620 18 19 16
31:::32 4918 BOKOR F A ATTILA LASZLO 8,80 0,00 0,00 67 
32:::33 4635 BORODI | SIMONA LENUTA 8,63 8,80 8,20 41
33:::34 4657 BORS A ALPAR 7,13 6,10 6,50 33 32 30 31 19 18 16 15
34:::35 4655 BORZA A ALEXANDRU FLORIAN 6,38 5,30 655 37 27 36 18 16
35:::36 4656 BRATU I LAURIAN IONEL 7,66 7,00 685 27 36
36:::37 4678 BRUDAN D TEODORA MADALINA 6,50 6,30 6,00 47.41 44 46 42 45 43
37:::38 4977 BUCATEA s MELISA STELIANA 6,20 0,00 0,00 69 
38:::39 4499 BUDULAU 1, LOREDANA IOANA 7,80 7,50 8,00 41
39:::40 4521 BULZ 1 IULIA ELENA 8,80 7,80 960 16 11 07
40:::41 4665 BUMBU 7 IONUT ADRIAN 7,16 6,70 7,00 16 11 18 12 19
41:::42 4603 BURA Vv LAVINIA 8,75 9,70 860 11
42:::43 4639 BUTUC GH ANE MARY 7,56 8,32 5,75 18 46 12 19
43:::44 4654 CAIENAR A DAN SEBASTIAN 8,60 8,75 860 04 16 18 19 11
44:::45 218 CALARAS S VASILE 6,50 5,00 7,00 15 18 12
45:::47 206 CALIN M MITICA 9,76 9,76 9,76 36.
46:::48 4561 CAPUSAN Vv MARIUS 6,00 5,70 635 46 47
47:::49 4551 CATINAS Ih RADU OTNIEL 8,40 9,20 615 45 46
48:::50 4489 CAZAC N SILVIU CONSTANTIN 6,03 600 5,20 18 19 15.
49:::51 4685 CAZACU GH CONSTANTIN ADRIAN 7,06 6,70 6,70 12 20
50:::46 4434 CALBOREAN P.S ADRIAN SERGIU 9,15 8,70 8,50 46.
51:::52 4403 CEBUC E.l ANA MARIA 8,06 8,25 940 34 36 16 12
52:::53 4427 CENAN S RADU CRISTIAN 8,25 9,60 6,70 O7 11 16 20 18
53:::54 4621 CHIHAIA ( IULIANA 7,95 6,90 9,00 16.
54:::55 4431 CHIOREAN Cc ELISA LAVINIA 648 6,95 6,40 19 18 16 11 14
55:::56 4694 CHIUHAN M DAIANA CRISTINA 6,83 7,00 5,40 16 44 19 47,Nr Medie Gen NotaPr Nota
56:::57 4566 CHMARA I VICTOR ALEXANDRU 8,41 8,15 850 04 14 16 19 11 15
57:::58 4554 CIDOIU ANDREEA H ANDREEA 9,19 8,50 9,20 41 46 43.
58:::59 4501 CIOANCA F HILDA ALETTA 7,63 5,70 9,00 44 46
59:::60 4649 CIOC DZ DANIEL ALEXANDRU 686 8,05 6,10 18 19 12 16 11 14 46 47 42 44 41
60:::61 4422 CIOCULESCU R EDUARD MIHAI 6,76 5,85 7,15 18 19 16 11°20
61:::62 4573 CIOROBITCA C CONSTANTIN ANDREI 6,55 5,70 6,50 37 36 35
62:::63 4659 CIOT P DRAGOS BOGDAN 6,63 7,70 5,00 19 18
63:::64 4698 CIPCIGAN I CRISTINA OANA 10,00 9,45 8,75 07 
64:::66 4479 CIUCA S PAULA ANDREEA 6,96 6,80 6,25 45 47 46 42 41 43
65:::65 4436 CIRLAN G DIANA ANDREIA 7,76 7,45 880 15 18 13 12 19
66:::67 4433 CLAPA SG AUN 7,26 5,20 845 37 36 19 12 18 16
67:::68 4684 CONSTANTIN V ELENA IULIA 8,10 8,00 7,50 41 44
68:::69 4429 CORCHIS N RADU NICOLAE 8,43 10,00 6,30 46.
69:::70 4476 CORDIS N NICOLETA MARIA , 8,92 7,30 955 41
70:::71 4511 COSOVAN G.N INGRID 7,70 6,50 7,45 46.
71:::72 4689 COSTE I RAUL ADRIAN 9,38 9,05 9,10 13 
72:::73 4443 COSTIN V ADRIAN TIBERIU 9,43 9,15 955 36 37,
73:::74 4494 COTROAZA Cc AUREL COSMIN 6,58 5,20 7,55 13 
74:::75 4976 COVACI G MARIA MONICA 9,27 9,60 7,30 69.
75:::76 4912 CRACIUN P DANIEL LEONARD 7,78 5,35 6,50 59 61 62.
76:::77 4495 CRISAN DM ADINA MIHAELA 9,81 9,20 990 46 41
77:::78 4646 CRISAN | ANCA MARIA 8,13 8,40 830 11 16 15 04 14 18 19 12 13 20
78:::79 4667 CURAC Vv ILEANA 6,43 7,00 5,80 46 41 47 44
79:::80 4419 CURTEA M EMANUELA IULIA 9,41 9,50 9,00 44 41
80:::81 4505 DAN D LORENA ANTONIA 7,35 6,40 7,00 46 41 47
81:::82 4412 DANCI M | ROXANA CLAUDIA 7,43 8,05 6,05 16 15 18 19 12 20 11 14
82:::83 4683 DANCI V.l IOANA TIMEEA 9,44 9,45 8,60 43 45 46 42 47 41
83:::84 4525 DARABONT I NATALIA 7,28 6,95 815 18 19 16
84:::85 4524 DASCALESCU P | ANCA NICOLETA 7,20 8,10 5,40 11, 16 15 18 19
85:::86 4408 DEAC N DENISA NICOLETA 8,11 8,00 7,150 44.
86:::87 4640 DEMIAN A.M ALEXANDRU IOSIF 7,05 6,00 6,15 14.16 15 12 13 18 14 19 20
87:::88 4901 DEZSI Zz HENRIETTA 6,57 7,10 8,05 65 64 66 60 62.
88:::89 4423 DINCA | DAYANA 9,20 9,70 9,70 46 
89:::90 4666 DOHOTAR G GHEORGHE 6,38 5,00 6,85 16 11,18 15 12 19 41 44
90:::91 201 DONOS P CONSTANTIN 6,50 5,00 7,00 16 141,
91:::92 4914 DRAGU Cc DORIN NICOLAE 8,14 10,00 615 59 62
92:::93 4439 DRON T ALINA 7,43 6,10 8,50 44 42
93:::94 221 DUCA M TUDOR 7,50 7,00 8,00 15 16
94:::95 4904 DUMITRU s FLORIN STELIAN 7,04 7,60 6,80 59 61 62,
95:::96 44480 ENACHE E.V IOANA MAGDALENA 9,10 8,35 925 46 43 42
96:::97 4461 ENACHE MM LILICA 7,40 6,50 7,50 46 47 41
97:::98 4630 ERINCZ A ROLAND 8,21 6,50 7,00 46 
98:::99 4507 FALAUS LV CALIN VASILE 6,50 6,65 6,20 42 46 41 43 47 44
99:::100 4675 FARAGAU A PAUL BOGDAN 7,01 6,20 5,75 47 44
100:::101 4482 FARCAS I SINZEANA MELISA 7,18 7,65 7,80 16 11
101:::102 4498 FILIP L. L MARIA MAGDALENA 7,78 8,15 6,95 43 15
102:::103 4601 FLOREA D.C MARCELA SILVIA 7,80 8,10 7,40 .12 18 19 15 13 16
103:::104 4618 FLORESCU Hl | MIHAELA HRISA 9,15 9,25 8,70 46 
104:::105 4606 FOGAS E. H SERGIU IONEL 9,93 8,70 915 11
105:::106 4688 GALL Vs LEVENTE 7,23 5,65 810 37, 27 36 35 32 30 31
106:::107 4454 GAZDAC c CATALIN 9,10 0,00 9,10 19 18 11
107:::108 4563 GERGELY E IMRE SZABOLCS 8,06 8,25 835 30 31 32 33
108:::109 4664 GILOAN T ANGELO VLAD 9,04 9,35 7,05 15 
109:::110 4686 GOLLER A MIRCEA ADRIAN 8,65 8,40 855 34 15 12
110:::112 4632 GORON I, ANTON IOAN 9,32 8,50 880 41 46 47
111:::113 4497 GREABU N.D OANA MARIA 8,86 8,60 935 141 16 15 18 19
112:::114 4612 GREC Vv RAMONA ROXANA 9,01 9,90 820 46 45 43 41 44 42
113:::115 4472 GRUAC | NARCISA MARIA 9,30 8,85 9,05 0O7 16
114:::116 4496 GROZAV R ALINA 9,24 8,80 915 45.
115:::117 202 GURDUZ DUMITRU 6,60 6,75 7,05 20 16
116:::118 4631 GUSAVAN D DUMITRU BOGDAN 8,80 9,25 8,60 45 46 41
117:::119 4444 GYURKA zZ HUNOR 7,83 5,45 7,30 48 46 47 45
118:::120 4426 HABA V. AL DIANA 7,76 6,00 880 12.16 20 19 11 18 15 14 13
119:::121 4445 HAGAU N OANA ANDREEA 6,98 6,25 6,20 .45 41
120:::122 217 HAMPEA N RARES MARIAN 6,43 5,70 5,00 56.
121:::123 4663 HARAP D VERONICA ' 7,74 5,15 640 41.
122:::124 4401 HAZOTA A ALEXANDRU CRISTIAN 6,93 9,15 6,35 18 46
123:::125 4969 HAZOTA A ALEXANDRU CRISTIAN 6,93 9,15 6,35 69.
124:::126 4405 HEGYI I LAURA 7,52 8,05 7,00 32 33 30 48
125:::127 4447 HUIDES LE LAURA SIMONA 6,43 7,00 510 11 16 18 19
126:::128 220 HULPE V VASILE DARIUS 5,12 5,12 5,12 18 11 13 15,ve Nr Leg Nume iF Prenume Menle Gen voce e ih nna, Optiuni
127:::129 4620 HUZMEZAN I IONUT 6,36 6,40 5,70 44 41 42
128:::130 4523 IANUS E MADALIN CONSTANTIN 7,01 7,30 5,20 46 
129:::131 4474 IAZ F ALEXANDRA 6,82 5,00 7,55 48,
130:::132 4407 |IAZU H.G ADRIANA CRISTINA 9,33 9,20 9,30 38, 19 18 15 12
131:::133 4430 ILIES LF ALINA 931 9,35 9,00 1 16 18 19 14 12 15 13 20
132:::134 4415 ILLES V NATALIA BIANCA 645 5,60 6,30 27.36 37 35 15 19 18
133:::135 215 IONAS I ROMAN 8,00 8,00 7,00 16 36
134:::136 4515 100 A ANDREI RARES 868 8,00 870 19 18 47 46
135:::137 4682 IUGA S MARIA NICOLETA 805 825 6,90 07.11 16 04 14
136:::138 4648 JURGIU T TITUS TIBERIU TREBONIU CORIC 7,91 9,35 7,10 18 19 15 20 11 16 14
137:::139 4905 KATO A FERENC 6,00 6,30 6,90 64 66
138:::140 4910 KOPACZ B LEVENTE BENEDEK 8,00 8,50 8,00 67 
139:::141 4627 KORAZSAN T TIBERIA TEODORA 8,47 8,40 7,00 34.
140:::142 4558 KOVACS S SZABOLCS ISTVAN 6,386 7,80 600 46 41 47 44
141:::143 4911 LAKATOS L LASZLO 9,02 9,05 8,25 59 61, 62,
142:::144 219 LAPTIACRU N NICOLAE 6,50 6,00 6,00 16.15 14
143:::145 4450 LAZAR I LAVINIA DANIELA 6,56 6,50 6,60 16 19 18 14 21 12 13 15
144:::146 4564 LAZAR Vv ANDREEA DANIELA 6,73 7,70 5,15 16.11 19 18
145:::147 4413 LAZAR M CELIA 8,13 8,00 8,40 11 
146:::148 4456 LIBER P MIHAELA 7 AL 6,65 7,00 11 16 15 13 12 14 18 19
147:::149 205 LISTIUGHIN ‘GH TATIANA 7,50 7,50 7,50 35 11
148:::150 4504 LORINCZ RO SZABOLCS CSABA 7,22 5,75 6,95 45 44 46
149:::151 4463 LUBANSKI V DENISPIOTR 7,83 830 7,90 15.12 0414
150:::452 4438 LUNGU G OVIDIU 780 7,45 7,15 14 15 12 16
151:::153 4506 MAGDA Vv EMANUEL 8,64 7,55 6,10 46 18
152:::154 4492 MAGHIAR Vv ADRIAN 7,34 5,20 7,00 42 
153:::155 209 MALNASI AL IZABELLA ERZSEBET 7,20 7,20 7,20 19,
154:::157 4556 MARIAN A. L ADELA 7,01 5,40 7,30 44 41
155:::156 4487 MARIAN 1A CATALIN 6,13 5,00 7,65 46 41
156:::158 4418 MARIN 1 DAVID ROBERT 6,08 5,75 5,50 47.
157:::159 4626 MARINESCU E. M SABINA GABRIELA 6,78 5,00 7,45 19 18 12,
158:::162 4464 MAXIAN A ROBERT ALEXANDRU 7,26 835 5,20 18 16 19 37 3615
159:::163 4518 MAXIM F.A FLAVIUS 7,36 510 7,80 16 11 13
160:::160 4510 MARMUREANU N ALEXANDRA CRISTINA 6,23 7,60 5,50 41.
161:::164 4613 MELEN P ANDREI SEBASTIAN 651 600 6,00 07 19 1112 13 14 15 20 18
162:::166 4973 MESAROS I IOAN 6,23 5,00 6,00 69 
163:::165 4660 MESAROS Vv ADRIAN MESAROS 6,50 5,00 8,70 45 46 44
164:::167 4644 MEZEI A KRISTINA ANAMARIA 7,98 8,10 7,90 16 44 15 43 11 41
165:::168 4406 MICLEAN CIAPA Cl BIANCA 6,46 5,95 6,00 46 47 43 42 44 41 45
166:::169 4624 MICULAICIUC S SONIA 711 600 660 18 11 07 16 15 12
167:::170 4966 MIHALI P ALINA 8,22 8,00 7,30 70 
168:::171 4513 MIKOLA VA GRETA MARTA 817 600 9,50 31 33 32 16 13 11
169:::172 4691 MITRANICA | GABRIEL 861 7,80 835 46 47.
170:::173 4559 MODOG M OCTAVIANA RALUCA 8,90 8,30 8,90 45 46
171:::174 4619 MOLDOVAN Vv BIANCA DENISA 820 945 7,15 16 11 15
172:::175 4617 MORA T FLAVIA ANDREEA 845 980 835 04 07 11 15 16 13 19 18 12 20
173:::176 4552 MORARIU Vv OANA MARIA 7,68 8,80 8,75 43 47 44
174:::177 207 MUNTEAN Ss ION 7,00 6,00 8,00 16, 15 19
175:::179 4641 MURESAN G GEORGIANA COSMINA 8,98 9,75 8,35 44 
176:::180 4679 MURESAN | ANAMARIA 610 5,10 630 411 19 18 12 13 15,
177:::178 4465 MURESAN M ANDRADA 7,11 7,50 6,00 41 
178:::181 4457 MUSAT S$ ROBERT MIHAI 685 7,85 5,10 11 16 12
179:::182 4970 MUSTATA Cc ALEXANDRA IOANA 6,18 5,00 7,75 69.
180:::183 4628 NEAMT A ANA MARIA 8,06 7,80 8,20 41 46
181:::185 4636 NEAMTU Vv RAZVAN IOAN 640 7,90 5,90 15.1219 1811
182:::184 4469 NEAMTU Vv VASILE MIHAI 6,73   5,00 6,70 41 46
183:::186 4967 NEGREA P PAUL VASILE 9,15 9,05 860 70.
184:::187 4574 NEGREA Vv MARIA SONIA 8,23 7,90 9,00 44 
185:::188 4637 NISTOR M IULIAN MARIUS 7,66 7,20 8,00 20 16 11 15 07 18 19 12 13
186:::189 4622 OANRA T CRINA ELENA 8,30 7,25 7,85 47 46 41 44 43
187:::190 4485 OARA I ADRIAN CATALIN 6,36 6,50 7,30 45 11 41 18 46 19 47
188:::191 4687 OLTEAN .F tULIU MATEI 9,28 8,90 8,40 45"
189:::192 4916 OLTEAN Vv ANA MARIA 7,06 5,00 7,85 59 61 62.
190:::193 4634 ONTI M CRINA CAROLINA 848 645 9,25 O07 04 16 1118
191:::194 4915 OPREA E CRISTIAN 6,53 5,10 6,00 59 62.
192:::195 212 PALAMARCIUC 0 CRISTINA 7,25 6,00 7,00 12.19 18
193:::196 4442 PANES A ELENA 7,28 6,40 7,45 19 18 11,
194:::197 4700 PANESCU Vv ADINA 8,41 8,00 9,65 04 12 14 16 15 ‘
195:::198 4981 PASARE DAN 6,13 500 7,90 70 199 4514 PASCA G FLORINA DENISA MIHAELA 8,28 8,85 8,10 43 i
196:::200 4625 PAUL Vv CLAUDIA MARIOARA 6,73 5,95 6,10 16 19 11, S$ : "ED .
197:::4 Bp Sp
198:::201 4421 PAUSAN V ALEXANDRU VICTOR : 6,03 5,80 6,55 20 16 19 12 15 18 14 11 13
199:::202 4608 PERDE B ANDREEA DENISA 7,23 8,30 595 11 19 04 15 16 18 12 20
200:::203 4491 PETA O.A LORENA 7,28 6,75 8,50 37 18 19
201:::204 4460 PETEAN P PETRINA 7,14 7,85 5,00 18
202:::205 4975 PETREUS V VASILE JUSTIN 6,71 7,00 5,00 69 
203:::206 4493 PETRISOR D CRISTINA 7,96 6,60 8,30 18.
204:::207 4553 PETROESC 1S ALEXANDRA DANIELA 6,90 5,00 7,20 43 46 42 47.
205:::208 214 PIVEN] E EVGHENII 5,00 5,00 5,00 19.
206:::209 4633 PLESCAN A PAUL ANDREI 6,80 6,00 6,00 11, 41 19 18
207:::211 4673 PODAR N STEFAN 6,83 9,10 5,05 46 47 41 42
208:::212 4409 PODEA T IONELA ANDRADA 6,56 7,00 7,70 13 18 19 12
209:::213 211 POGRIBNIC M ELENA 7,75 8,00 7,00 16 11 15 19
210:::219 4680 POP A DAN 7,68 6,30 685 11 15 16 12
211:::217 4642 POP D RAMONA 9,38 .10,00 835 41 44
212:::214 4428 POP El EDUARD , 6,33 5,85 8,00 35 37 36
213:::220 4690 POP G DIANARALUCA 9,12 9,15 6,80 18 15 14 12
214:::215 4484 POP P,V IONELA MARIA 6,83 6,40 7,50 11 16 18 19 41 44 46 47
215:::218 4647 POP Vv LORENA LUMINITA 7,91 7,30 9,10 41, 44
216:::216 4610 POP V.R REBEKA ANNA 7,28 8,20 7,60 33 32, 30 31
217:::221 4615 PORFIRE N MADALINA NICOLETA 8,36 8,40 7,00 16 11 19 12 18
218:::222 4402 POSTELNICU S BOGDAN 8,21 10,00 7,30 07 35, 11, 15 27 36.
219:::223 4483 PREDA Ss MIHAI 9,36 9,60 850 07 16 15 18 19 11
220:::224 4417 PRESCURA N ADELA 7,78 8,40 7,95 41.
221:::225 4435 PRUTEANU A ANTONIU ALEXANDRU 6,20 5,00 6,20 15 14 19 18 13 12 11 16 20
222:::226 4502 PUICAR T DENISA MARIANA 7,15 6,00 7,55 16 11 18 19 12 44 41 46 47 42
223:::227 4478 RADU | ZAHARIE OVIDIU 8,36 9,00 7,37 44 47 46
224:::228 4906 RAPO Vv ATTILA 8,22 7,90 6,85 59 61 62.
225:::229 4414 RATIU Vv ALEXANDRU NICOLAE 6,66 5,40 6,45 18 19
226:::230 4437 REDENSTEIN Cc ELENA OANA 8,86 9,90 7,45 15 16 19 18
227:::231 4971 REDNIC P IULIANA MARIA 6,56 5,00 6,50 70 
228:::232 4681 ROBERT M ROBERT , 8,00 8,65 7,745 48 
229:::233 4662 ROMAN DACIAN LUCIAN 9,44 8,85 8,00 45 41
230:::239 4965 RUS CV DANIEL 6,91 5,90 7,40 70.
231:::235 4470 RUS | ANA MARIA 6,11 7,55 5,40 41 46 43 44
232:::234 4452 RUS I IOANA NATALIA 9,53 10,00 8,70 16 18 19 12 15 20 13
233:::238 4604 RUS M ANDREI 6,43 5,40 7,90 18 16 11 19 12
234:::237 4568 RUS 0 DARIUS OVIDIU 6,15 5,70 5,80 19 18 15 12 13 20 16 11
235:::236 4481 RUS “R OVIDIU ANDREI 7,45 7,40 7,85 46 43 42
236:::240 4569 RUSEN L ALEXANDRA ELENA 8,33 7,05 9,55 19 18 12
237:::241 4522 RUSU D ALEXANDRA COSMINA 9,17 8,70 9,40 43 44 42
238:::242 4432 SACOTA N NICOLETA 6,31 5,00 645 11 12 15 19 18 16 13 14 20 41 42 43 47 46 44
239:::243 4609 SATMAR Vv OVIDIU LUCIAN 6,18 5,60 5,30 44 43
240:::244 4512 SAVU S.P. CARMEN VOICHITA 9,90 9,85 955 04 14
241:::245 4980 SCOPET T FEDOR 6,66 6,00 7,00 70 
242:::246 4446 SCRIPCA T TATIANA FLORENTINA 6,60 6,00 6,00 41 44 42 43
243:::247 4629 SCROBOTA I EMANUELA MADALINA 7,80 7,40 845 41 47 44 46
244:::248 4623 SCURTU M.G RAZVAN ANDREI 7,48 7,40 7,20 19 12, 13,
245:::249 4692 SESERMAN R ADELA 9,34 9,15 10,00 41 
246:::251 4661 SILAGHI D PATRIK ADRIAN 6,23 5,00 7,50 11, 16 19 18
247:::250 4614 SILAGHI 1 ADRIAN FLAVIU IONUT 7,05 7,10 680 07 20 35 11 12 37 18 19 36 16
248:::252 4477 SIMON A ROBERT 6,18 6,85 5,80 32 33 30 18 19 06
249:::254 4616 SIMON G ALEXANDRU IOAN 6,50 6,20 5,55 14.16 14 19 18 12 13 2015
250:::253 4607 SIMON M MIHAELA FLORENTINA 8,36 8,05 9,30 16 19 18 15
251:::255 4488 SIPOS I ADELA LAURA 8,06 7,40 850 18 16 19 12 14 11 15
252:::256 4519 SMADICI M ALEXANDRA 6,50 5,00 6,20 11 16 18
253:::258 4520 SOPON I, ELENA ALEXANDRA 9,75 9,65 9,50 41 44.
254:::259 4468 SORA M ALEXANDRU CATALIN 7,75 8,65 5,65 18, 19 12
255:::260 216 SOS LS ROXANA STELIANA 6,40 6,40 6,40 11, 16 20
256:::261 4674 STANCIU D | DAN ANDREI 6,38 6,90 6,90 16 19 18
257:::262 4453 STETCO G.G, {!USTIN RENE IONUT 6,46 5,00 6,80 43 46 42 41,
258:::263 4404 STICLARU M MARCELA ALEXANDRA 7,30 5,30 7,80 16.
259:::265 4672 STOIAN Vv GHEORGHE LADISLAU 7,68 8,30 6,50 44 41 46 47.
260:::266 4555 STRUGAR G ANCA IOANA 8,55 9,30 7,25 44 47, 46
261:::267 4645 SZALASI A EDWARD DACIAN 6,15 5,10 6,30 19 16 11 18 15 12 13 14 20
262:::270 4670 SZEKELY G IULIA MARIA 8,33 8,30 7,60 12, 19 18
263:::269 4475 SZEKELY G EVA ROZALIA 6,86 5,45 8,70 41 48 44
264:::268 4471 SZEKELY K TIMEA ERZSEBET 8,12 6,65 9,00 12 18 11 19
265:::271 4517 SZEP A ATTILA 7,28 8,05 6,45 33 32:30 15 14
266:::272 4416 SZOCS AS PETER ROBERT 6,10 5,25 5,95 48
267:::257 4473 SOMCUTEAN L ROZALIA LOREDANA 7,50 7,40 6,30 45 42, 43 44 46 47.
268:::264 4467 STIR R RUDOLF EMANUEL 6,38 680 7,35 19Nr Medie Gen NotaPr Nota
269:::273 4560 TAKACS T BERNADETT 7,53 7,05 845 41 44
270:::274 4652 TANTAU I ILEANA LETITIA 8,15 9,00 8,25 46 43
271:::275 4653 TAUT l RALUCA IOANA 7,11 7,30 7,30 16 11.15 18 12
272:::276 4974 TIFRAC | DANIELA 6,02 5,00 5,00 69.
273:::277 4964 TIMIS G GEORGIANA ECATERINA 8,33 7,40 8,90 69.
274:::278 4963 TIPLEA P MARIA 7,30 8,35 5,85 69 
275:::279 4486 TISE P IOANA CAMELIA 6,28 5,75 5,00 44.
276:::280 4459 TODOR A ALEXANDRU , 6,21 5,40 6,20 44
277:::281 4668 TODOR I VALTER 6,17 6,50 6,10 31 32 33,
278:::282 4466 TOMA A ANDREI 6,35 8,70 5,00 42 47,
279:::283 4978 TOMOIAGA M ALINA MARIA 9,14 8,40 8,10 70,
280:::284 4979 TOMOIAGA V MARIA 6,16 6,00 5,10 70.
281:::285 4516 TOPAN D BOGDAN MIHAI 6,88 5,05 7,40 18 16 19 15
282:::286 4643 TOROK l NORBERT ZSOLT 8,23 8,10 7,95 47 46 43.
283:::287 4903 TUZES E IBOLYA 6,58 5,00 8,12 59 67,
284:::288 4693 UJVARI N GABOR OTTO 6,65 6,35 8,90 32 33 30
285:::289 4458 UNGUREANU Vv RAZVAN NICOLAE 6,98 5,40 850 46.
286:::290 4448 VADAN | ANAMARIA MERY 7,50 5,40 5,40 43 42
287:::291 4605 VAIDA Zz HELGA 6,32 5,75 5,10 32, 33 30
288:::292 4917 VAJDA A EVA 7,71 8,15 9,30 64 66
289:::293 4420 VALEAN L STEFAN ILIE 7,21 7,20 5,90 47 46.
290:::294 4697 VANCEA 1 IOAN CLAUDIU 6,10 5,80 5,80 41 43
291:::295 4638 VASIAC D LIVIU DANIEL LUIGI 6,73 6,80 7,70 14 16 15 18 20 12 19
292:::296 4968 VASIES | IONELA CRISTINA 6,48 6,40 5,70 70 
293:::297 4658 VASILICA 1 RALUCA CLAUDIA 8,40 9,60 6,40 11 16
294:::298 4449 VASS D DENES MADALIN 9,11 8,10 6,85 O07.
295:::299 4451 VASTAG R RAUL STEFAN 6,23 5,50 6,70 16 14 15 20 18 11,13 12 19
296:::300 8 ©4455 VIGA I IONEL DANIEL 6,26 6,60 5,50 44 47 46 16 19 18 13
297:::301 4650 VILD E ERNEST 7,10 6,20 6,00 04 18 19 16 15 11 14 13 12 20
298:::302 4907 VIRAG I JOZSEF 7,84 8,80 7,50 67 
299:::303 4567 VITISAN G.B ADELINAEMILIA 9,40 7,90 9,50 44 41
300:::304 4503 VLASA M MIHAI 6,45 5,00 5,00 46 47
301:::305 204 ZACHARIS K GEORGIOS 5,00 5,00 5,00 19 15 18 37 16 11
302:::306 203 ZADOROINII © A IULIANA 6,50 6,00 6,00 15, 16 19
303:::307 4677 ZAGREAN D ANCUJA DIANA 6,36 5,00 5,30 41.
304:::308 4425 ZEGREAN D ANA MARIA 7,51 6,60 8,00 11
305:::309 7908 ZSIGA M KAROLA , 7,32 6,95 8,40 64 59
306:::310 4410 ZSURZSAN G. ZS, VIVIEN MERCEDESZ 8,02 7,20 8,65 27 36 37 18 19 16
307:::311 4562 ZUGRAV | IOANA / 6,58 5,00 6,75 15 12

In [331]:
good_lines[126]=good_lines[126].split(',ve Nr Leg')[0]

In [332]:
good_lines[146]=good_lines[146].replace('7 AL','7,41')

In [333]:
helper=good_lines[195].split('199 4514')
good_lines[195]=helper[0]
good_lines.append('199 4514'+helper[1])

Adatok feldolgozása

A név nem mindenhol ugyanolyan hosszú, ezért ezt normalizáljuk.
A név második neve, az iniciálő sokszor 1 vagy |, l, I. Ezt normalizáljuk I-re.


In [334]:
clean_lines=[]
for line in good_lines:
    values=line.split(' ')
    
    try:
        for k in [2,3,4]:
            values[k]=values[k].replace('1','I').replace('l','I')\
                .replace('|','I').replace('7','I').replace('0','O')

        counter=0
        name_start=100
        name_end=0
        while counter<len(values)-1:
            counter+=1
            try:
                if not values[counter][0].isdigit():
                    name_start=min(name_start,counter)
                    if values[counter+1][0].isdigit():
                        name_end=counter+1
                        counter=len(values)
            except:
                print('HIBA: '+line)
    
        clean_values=values[:name_start]+[' '.join(values[name_start:name_end])]+values[name_end:]
        clean_values=[szo for szo in clean_values if szo]
        clean_lines.append(clean_values)

    except:
        print('HIBA: '+line)


HIBA: 4 Bp Sp

In [341]:
df=pd.DataFrame(clean_lines)
df=df[range(6)]
df.columns=['ID','Leg','Nume','Admitere','Bac 2','Lb. Mat.']
df.head()


Out[341]:
ID Leg Nume Admitere Bac 2 Lb. Mat.
0 1 4696 ACHIM O.A ANDREEA MAGDALENA 9.56 9.5 9.70
1 3 4441 ALBERT J CSILLA EDIT 6.76 5.7 7.80
2 2 208 ALBERT Vv IULAN 6.10 5.2 6.00
3 4 4500 ALEXAN A MARIOARA 7.82 7.0 8.55
4 5 4565 AMBRUS T TIBOR 8.36 9.1 9.40

In [350]:
df.to_excel('pdf/'+PDF_file+'/data.xlsx')

extra

Ez a további rész további tisztítás, ezt végezhetjük már akár Excelben is.

A jegyeknél vagy ahol hiányzik a vessző. Ezt úgy vizsgáljuk, hogy a az első karater után mindig vesszőt teszük, ha már nincs. Aztán számokká konvertáljuk.


In [340]:
for line in clean_lines:
    try:
        for i in [3,4,5]:
            jegy=line[i]
            jegy=jegy.replace('.',',')
            jegy=jegy.replace('I','1').replace('l','1')\
                .replace('|','1').replace('A','4').replace('O','0')

            if jegy[0]==',':jegy=jegy[1:]
            if jegy[-1]==',':jegy=jegy[:-1]
            if jegy!='10,00':
                if jegy!='1000':
                    if len(jegy)<4:
                        jegy=jegy[0]+','+jegy[1:]
                    jegy=float(jegy.replace(',','.'))
                else: jegy=10
            else: jegy=10
            line[i]=jegy
    except:
        print(line)

In [342]:
df=pd.DataFrame(clean_lines)
df=df[range(6)]
df.columns=['ID','Leg','Nume','Admitere','Bac 2','Lb. Mat.']
df.head()


Out[342]:
ID Leg Nume Admitere Bac 2 Lb. Mat.
0 1 4696 ACHIM O.A ANDREEA MAGDALENA 9.56 9.5 9.70
1 3 4441 ALBERT J CSILLA EDIT 6.76 5.7 7.80
2 2 208 ALBERT Vv IULAN 6.10 5.2 6.00
3 4 4500 ALEXAN A MARIOARA 7.82 7.0 8.55
4 5 4565 AMBRUS T TIBOR 8.36 9.1 9.40

In [349]:
df['Mean']=df.mean(axis=1)
df


Out[349]:
ID Leg Nume Admitere Bac 2 Lb. Mat. Mean
0 1 4696 ACHIM O.A ANDREEA MAGDALENA 9.56 9.50 9.70 9.586667
1 3 4441 ALBERT J CSILLA EDIT 6.76 5.70 7.80 6.753333
2 2 208 ALBERT Vv IULAN 6.10 5.20 6.00 5.766667
3 4 4500 ALEXAN A MARIOARA 7.82 7.00 8.55 7.790000
4 5 4565 AMBRUS T TIBOR 8.36 9.10 9.40 8.953333
... ... ... ... ... ... ... ...
303 308 4425 ZEGREAN D ANA MARIA 7.51 6.60 8.00 7.370000
304 309 7908 ZSIGA M KAROLA , 7.32 6.95 8.40 7.556667
305 310 4410 ZSURZSAN G. ZS, VIVIEN MERCEDESZ 8.02 7.20 8.65 7.956667
306 311 4562 ZUGRAV I IOANA / 6.58 5.00 6.75 6.110000
307 199 4514 PASCA G FLORINA DENISA MIHAELA 8.28 8.85 8.10 8.410000

308 rows × 7 columns