{ "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "view-in-github" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Ssv5i7OIn10T" }, "source": [ "# tabula-py example notebook\n", "\n", "tabula-py is a tool for convert PDF tables to pandas DataFrame. tabula-py is a wrapper of [tabula-java](https://github.com/tabulapdf/tabula-java), which requires java on your machine. tabula-py also enables you to convert tables in a PDF into CSV/TSV files.\n", "\n", "tabula-py's PDF extraction accuracy is same as tabula-java or [tabula app](https://tabula.technology/); GUI tool of tabula, so if you want to know the performance of tabula-py, I highly recommend you to try tabula app.\n", "\n", "tabula-py is good for:\n", "- automation with Python script\n", "- advanced analytics after converting pandas DataFrame\n", "- casual analytics with Jupyter notebook or Google Colabolatory\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "UvnC9oESpIgF" }, "source": [ "## Check Java environment and install tabula-py\n", "\n", "tabula-py requires a java environment, so let's check the java environment on your machine." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 71 }, "colab_type": "code", "id": "02CnPUI6mKNc", "outputId": "84caa7fe-7970-4da3-b612-6f060a257090" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "openjdk version \"11.0.20\" 2023-07-18\n", "OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-1ubuntu120.04)\n", "OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-1ubuntu120.04, mixed mode, sharing)\n" ] } ], "source": [ "!java -version" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JtB6sfV_pYOX" }, "source": [ "After confirming the java environment, install tabula-py by using pip." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "colab_type": "code", "id": "wc52T-1WpfOC", "outputId": "c6ad1c06-6156-4ed7-bb6b-797d612287a3" }, "outputs": [], "source": [ "# To be more precisely, it's better to use `{sys.executable} -m pip install tabula-py`\n", "!pip install -q tabula-py" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Xp4yGv7BpsIq" }, "source": [ "Before trying tabula-py, check your environment via tabula-py `environment_info()` function, which shows Python version, Java version, and your OS environment." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 269 }, "colab_type": "code", "id": "pda4jjbIp3MN", "outputId": "c7a60bac-88a6-429b-a823-f5f47e137176" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python version:\n", " 3.8.10 (default, May 26 2023, 14:05:08) \n", "[GCC 9.4.0]\n", "Java version:\n", " openjdk version \"11.0.20\" 2023-07-18\n", "OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-1ubuntu120.04)\n", "OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-1ubuntu120.04, mixed mode, sharing)\n", "tabula-py version: 2.7.1.dev6+gd9154b3\n", "platform: Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.29\n", "uname:\n", " uname_result(system='Linux', node='GARM', release='5.15.90.1-microsoft-standard-WSL2', version='#1 SMP Fri Jan 27 02:56:13 UTC 2023', machine='x86_64', processor='x86_64')\n", "linux_distribution: ('Ubuntu', '20.04', 'focal')\n", "mac_ver: ('', ('', '', ''), '')\n" ] } ], "source": [ "import tabula\n", "\n", "tabula.environment_info()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mcy_Aas4qK5Q" }, "source": [ "## Read a PDF with `read_pdf()` function\n", "\n", "Let's read a PDF from GitHub. tabula-py can load a PDF or file like object on both local or internet by using `read_pdf()` function." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "q6FGPenCluQz", "outputId": "ba22a7c8-45a2-4fb0-8997-82cf80875f99" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Aug 27, 2023 2:32:52 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider loadDiskCache\n", "WARNING: New fonts found, font cache will be re-built\n", "Aug 27, 2023 2:32:52 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider \n", "WARNING: Building on-disk font cache, this may take a while\n", "Aug 27, 2023 2:32:53 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider \n", "WARNING: Finished building on-disk font cache, found 140 fonts\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0mpgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
5Valiant18.16225.01052.763.46020.221031
6Duster 36014.38360.02453.213.57015.840034
7Merc 240D24.44146.7623.693.19020.001042
8Merc 23022.84140.8953.923.15022.901042
9Merc 28019.26167.61233.923.44018.301044
10Merc 280C17.86167.61233.923.44018.901044
11Merc 450SE16.48275.81803.074.07017.400033
12Merc 450SL17.38275.81803.073.73017.600033
13Merc 450SLC15.28275.81803.073.78018.000033
14Cadillac Fleetwood10.48472.02052.935.25017.980034
15Lincoln Continental10.48460.02153.005.42417.820034
16Chrysler Imperial14.78440.02303.235.34517.420034
17Fiat 12832.4478.7664.082.20019.471141
18Honda Civic30.4475.7524.931.61518.521142
19Toyota Corolla33.9471.1654.221.83519.901141
20Toyota Corona21.54120.1973.702.46520.011031
21Dodge Challenger15.58318.01502.763.52016.870032
22AMC Javelin15.28304.01503.153.43517.300032
23Camaro Z2813.38350.02453.733.84015.410034
24Pontiac Firebird19.28400.01753.083.84517.050032
25Fiat X1-927.3479.0664.081.93518.901141
26Porsche 914-226.04120.3914.432.14016.700152
27Lotus Europa30.4495.11133.771.51316.901152
28Ford Pantera L15.88351.02644.223.17014.500154
29Ferrari Dino19.76145.01753.622.77015.500156
30Maserati Bora15.08301.03353.543.57014.600158
31Volvo 142E21.44121.01094.112.78018.601142
\n", "
" ], "text/plain": [ " Unnamed: 0 mpg cyl disp hp drat wt qsec vs am \\\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 \n", "1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 \n", "2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 \n", "3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 \n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 \n", "5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 \n", "6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 \n", "7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 \n", "8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 \n", "9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 \n", "10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 \n", "11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 \n", "12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 \n", "13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 \n", "14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 \n", "15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 \n", "16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 \n", "17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 \n", "18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 \n", "19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 \n", "20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 \n", "21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 \n", "22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 \n", "23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 \n", "24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 \n", "25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 \n", "26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 \n", "27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 \n", "28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 \n", "29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 \n", "30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 \n", "31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 \n", "\n", " gear carb \n", "0 4 4 \n", "1 4 4 \n", "2 4 1 \n", "3 3 1 \n", "4 3 2 \n", "5 3 1 \n", "6 3 4 \n", "7 4 2 \n", "8 4 2 \n", "9 4 4 \n", "10 4 4 \n", "11 3 3 \n", "12 3 3 \n", "13 3 3 \n", "14 3 4 \n", "15 3 4 \n", "16 3 4 \n", "17 4 1 \n", "18 4 2 \n", "19 4 1 \n", "20 3 1 \n", "21 3 2 \n", "22 3 2 \n", "23 3 4 \n", "24 3 2 \n", "25 4 1 \n", "26 5 2 \n", "27 5 2 \n", "28 5 4 \n", "29 5 6 \n", "30 5 8 \n", "31 4 2 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import tabula\n", "pdf_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf\"\n", "\n", "dfs = tabula.read_pdf(pdf_path, stream=True)\n", "# read_pdf returns list of DataFrames\n", "print(len(dfs))\n", "dfs[0]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "GryAu9PksQeJ" }, "source": [ "## Options for `read_pdf()`\n", "\n", "Note that `read_pdf()` function reads only page 1 by default. For more details, use `?read_pdf`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "mryDaFRqsfTN", "outputId": "130309a4-9541-4330-81c0-37e30d8a4a43" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function read_pdf in module tabula.io:\n", "\n", "read_pdf(input_path: Union[IO, str, os.PathLike], output_format: Union[str, NoneType] = None, encoding: str = 'utf-8', java_options: Union[List[str], NoneType] = None, pandas_options: Union[Dict[str, Any], NoneType] = None, multiple_tables: bool = True, user_agent: Union[str, NoneType] = None, use_raw_url: bool = False, pages: Union[str, int, Iterable[int], NoneType] = None, guess: bool = True, area: Union[Iterable[float], Iterable[Iterable[float]], NoneType] = None, relative_area: bool = False, lattice: bool = False, stream: bool = False, password: Union[str, NoneType] = None, silent: Union[bool, NoneType] = None, columns: Union[Iterable[float], NoneType] = None, relative_columns: bool = False, format: Union[str, NoneType] = None, batch: Union[str, NoneType] = None, output_path: Union[str, NoneType] = None, options: str = '') -> Union[List[pandas.core.frame.DataFrame], Dict[str, Any]]\n", " Read tables in PDF.\n", " \n", " Args:\n", " input_path (str, path object or file-like object):\n", " File like object of target PDF file.\n", " It can be URL, which is downloaded by tabula-py automatically.\n", " output_format (str, optional):\n", " Output format for returned object (``dataframe`` or ``json``)\n", " Giving this option enforces to ignore `multiple_tables` option.\n", " encoding (str, optional):\n", " Encoding type for pandas. Default: ``utf-8``\n", " java_options (list, optional):\n", " Set java options.\n", " \n", " Example:\n", " ``[\"-Xmx256m\"]``\n", " pandas_options (dict, optional):\n", " Set pandas options.\n", " \n", " Example:\n", " ``{'header': None}``\n", " \n", " Note:\n", " With ``multiple_tables=True`` (default), pandas_options is passed\n", " to pandas.DataFrame, otherwise it is passed to pandas.read_csv.\n", " Those two functions are different for accept options like ``dtype``.\n", " multiple_tables (bool):\n", " It enables to handle multiple tables within a page. Default: ``True``\n", " \n", " Note:\n", " If `multiple_tables` option is enabled, tabula-py uses not\n", " :func:`pd.read_csv()`, but :func:`pd.DataFrame()`. Make\n", " sure to pass appropriate `pandas_options`.\n", " user_agent (str, optional):\n", " Set a custom user-agent when download a pdf from a url. Otherwise\n", " it uses the default ``urllib.request`` user-agent.\n", " use_raw_url (bool):\n", " It enforces to use `input_path` string for url without quoting/dequoting.\n", " Default: False\n", " pages (str, int, `iterable` of `int`, optional):\n", " An optional values specifying pages to extract from. It allows\n", " `str`,`int`, `iterable` of :`int`. Default: `1`\n", " \n", " Examples:\n", " ``'1-2,3'``, ``'all'``, ``[1,2]``\n", " guess (bool, optional):\n", " Guess the portion of the page to analyze per page. Default `True`\n", " If you use \"area\" option, this option becomes `False`.\n", " \n", " Note:\n", " As of tabula-java 1.0.3, guess option becomes independent from\n", " lattice and stream option, you can use guess and lattice/stream option\n", " at the same time.\n", " \n", " area (iterable of float, iterable of iterable of float, optional):\n", " Portion of the page to analyze(top,left,bottom,right).\n", " Default is entire page.\n", " \n", " Note:\n", " If you want to use multiple area options and extract in one table, it\n", " should be better to set ``multiple_tables=False`` for :func:`read_pdf()`\n", " \n", " Examples:\n", " ``[269.875,12.75,790.5,561]``,\n", " ``[[12.1,20.5,30.1,50.2], [1.0,3.2,10.5,40.2]]``\n", " \n", " relative_area (bool, optional):\n", " If all area values are between 0-100 (inclusive) and preceded by ``'%'``,\n", " input will be taken as % of actual height or width of the page.\n", " Default ``False``.\n", " lattice (bool, optional):\n", " Force PDF to be extracted using lattice-mode extraction\n", " (if there are ruling lines separating each cell, as in a PDF of an\n", " Excel spreadsheet)\n", " stream (bool, optional):\n", " Force PDF to be extracted using stream-mode extraction\n", " (if there are no ruling lines separating each cell, as in a PDF of an\n", " Excel spreadsheet)\n", " password (str, optional):\n", " Password to decrypt document. Default: empty\n", " silent (bool, optional):\n", " Suppress all stderr output.\n", " columns (iterable, optional):\n", " X coordinates of column boundaries.\n", " \n", " Example:\n", " ``[10.1, 20.2, 30.3]``\n", " relative_columns (bool, optional):\n", " If all values are between 0-100 (inclusive) and preceded by '%',\n", " input will be taken as % of actual width of the page.\n", " Default ``False``.\n", " format (str, optional):\n", " Format for output file or extracted object.\n", " (``\"CSV\"``, ``\"TSV\"``, ``\"JSON\"``)\n", " batch (str, optional):\n", " Convert all PDF files in the provided directory. This argument should be\n", " directory path.\n", " output_path (str, optional):\n", " Output file path. File format of it is depends on ``format``.\n", " Same as ``--outfile`` option of tabula-java.\n", " options (str, optional):\n", " Raw option string for tabula-java.\n", " \n", " Returns:\n", " list of DataFrames or dict.\n", " \n", " Raises:\n", " FileNotFoundError:\n", " If downloaded remote file doesn't exist.\n", " \n", " ValueError:\n", " If output_format is unknown format, or if downloaded remote file size is 0.\n", " \n", " tabula.errors.CSVParseError:\n", " If pandas CSV parsing failed.\n", " \n", " \n", " Examples:\n", " \n", " Here is a simple example.\n", " Note that :func:`read_pdf()` only extract page 1 by default.\n", " \n", " Notes:\n", " As of tabula-py 2.0.0, :func:`read_pdf()` sets `multiple_tables=True` by\n", " default. If you want to get consistent output with previous version, set\n", " `multiple_tables=False`.\n", " \n", " >>> import tabula\n", " >>> pdf_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf\"\n", " >>> tabula.read_pdf(pdf_path, stream=True)\n", " [ Unnamed: 0 mpg cyl disp hp drat wt qsec vs am gear carb\n", " 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", " 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", " 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", " 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2\n", " 5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1\n", " 6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4\n", " 7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2\n", " 8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2\n", " 9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4\n", " 10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4\n", " 11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3\n", " 12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3\n", " 13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3\n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4\n", " 15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4\n", " 16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4\n", " 17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1\n", " 18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2\n", " 19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1\n", " 20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1\n", " 21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2\n", " 22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2\n", " 23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4\n", " 24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2\n", " 25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1\n", " 26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2\n", " 27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2\n", " 28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4\n", " 29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6\n", " 30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8\n", " 31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2]\n", " \n", " If you want to extract all pages, set ``pages=\"all\"``.\n", " \n", " >>> dfs = tabula.read_pdf(pdf_path, pages=\"all\")\n", " >>> len(dfs)\n", " 4\n", " >>> dfs\n", " [ 0 1 2 3 4 5 6 7 8 9\n", " 0 mpg cyl disp hp drat wt qsec vs am gear\n", " 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4\n", " 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4\n", " 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4\n", " 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3\n", " 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3\n", " 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3\n", " 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3\n", " 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4\n", " 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4\n", " 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4\n", " 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4\n", " 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3\n", " 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3\n", " 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3\n", " 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3\n", " 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3\n", " 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3\n", " 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4\n", " 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4\n", " 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4\n", " 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3\n", " 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3\n", " 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3\n", " 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3\n", " 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3\n", " 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4\n", " 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5\n", " 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5\n", " 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5\n", " 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5\n", " 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5, 0 1 2 3 4\n", " 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 1 5.1 3.5 1.4 0.2 setosa\n", " 2 4.9 3.0 1.4 0.2 setosa\n", " 3 4.7 3.2 1.3 0.2 setosa\n", " 4 4.6 3.1 1.5 0.2 setosa\n", " 5 5.0 3.6 1.4 0.2 setosa\n", " 6 5.4 3.9 1.7 0.4 setosa, 0 1 2 3 4 5\n", " 0 NaN Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 1 145 6.7 3.3 5.7 2.5 virginica\n", " 2 146 6.7 3.0 5.2 2.3 virginica\n", " 3 147 6.3 2.5 5.0 1.9 virginica\n", " 4 148 6.5 3.0 5.2 2.0 virginica\n", " 5 149 6.2 3.4 5.4 2.3 virginica\n", " 6 150 5.9 3.0 5.1 1.8 virginica, 0\n", " 0 supp\n", " 1 VC\n", " 2 VC\n", " 3 VC\n", " 4 VC\n", " 5 VC\n", " 6 VC\n", " 7 VC\n", " 8 VC\n", " 9 VC\n", " 10 VC\n", " 11 VC\n", " 12 VC\n", " 13 VC\n", " 14 VC]\n", "\n" ] } ], "source": [ "help(tabula.read_pdf)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vE9524MBspsN" }, "source": [ "Let's set `pages` option. Here is the extraction result of page 3:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 604 }, "colab_type": "code", "id": "bjbmAfk_luRD", "outputId": "8d7ba5e5-07a8-4e4a-8e2c-37d5c0670294" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lensuppdose
04.2VC0.5
111.5VC0.5
27.3VC0.5
35.8VC0.5
46.4VC0.5
510.0VC0.5
611.2VC0.5
711.2VC0.5
85.2VC0.5
97.0VC0.5
1016.5VC1.0
1116.5VC1.0
1215.2VC1.0
1317.3VC1.0
1422.5VC1.0
\n", "
" ], "text/plain": [ " len supp dose\n", "0 4.2 VC 0.5\n", "1 11.5 VC 0.5\n", "2 7.3 VC 0.5\n", "3 5.8 VC 0.5\n", "4 6.4 VC 0.5\n", "5 10.0 VC 0.5\n", "6 11.2 VC 0.5\n", "7 11.2 VC 0.5\n", "8 5.2 VC 0.5\n", "9 7.0 VC 0.5\n", "10 16.5 VC 1.0\n", "11 16.5 VC 1.0\n", "12 15.2 VC 1.0\n", "13 17.3 VC 1.0\n", "14 22.5 VC 1.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# set pages option\n", "dfs = tabula.read_pdf(pdf_path, pages=3, stream=True)\n", "dfs[0]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "5oJl_6MYluRQ", "outputId": "24580a6f-55a0-424e-9101-dc1d6c8cdadf" }, "outputs": [ { "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp drat wt qsec vs am \\\n", " 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 \n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 \n", " 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 \n", " 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 \n", " 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 \n", " 5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 \n", " 6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 \n", " 7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 \n", " 8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 \n", " 9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 \n", " 10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 \n", " 11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 \n", " 12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 \n", " 13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 \n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 \n", " 15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 \n", " 16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 \n", " 17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 \n", " 18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 \n", " 19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 \n", " 20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 \n", " 21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 \n", " 22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 \n", " 23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 \n", " 24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 \n", " 25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 \n", " 26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 \n", " 27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 \n", " 28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 \n", " 29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 \n", " 30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 \n", " 31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 \n", " \n", " gear carb \n", " 0 4 4 \n", " 1 4 4 \n", " 2 4 1 \n", " 3 3 1 \n", " 4 3 2 \n", " 5 3 1 \n", " 6 3 4 \n", " 7 4 2 \n", " 8 4 2 \n", " 9 4 4 \n", " 10 4 4 \n", " 11 3 3 \n", " 12 3 3 \n", " 13 3 3 \n", " 14 3 4 \n", " 15 3 4 \n", " 16 3 4 \n", " 17 4 1 \n", " 18 4 2 \n", " 19 4 1 \n", " 20 3 1 \n", " 21 3 2 \n", " 22 3 2 \n", " 23 3 4 \n", " 24 3 2 \n", " 25 4 1 \n", " 26 5 2 \n", " 27 5 2 \n", " 28 5 4 \n", " 29 5 6 \n", " 30 5 8 \n", " 31 4 2 ,\n", " Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa\n", " 5 5.4 3.9 1.7 0.4 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica\n", " 5 150 5.9 3.0 5.1 1.8 virginica,\n", " len supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0\n", " 14 22.5 VC 1.0]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# pass pages as string\n", "tabula.read_pdf(pdf_path, pages=\"1-2,3\", stream=True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "kLnlbot_tBUa" }, "source": [ "You can set `pages=\"all\"` for extration all pages. If you hit OOM error with Java, you should set appropriate `-Xmx` option for `java_options`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "pGKPdC0tluRc", "outputId": "6e860d6d-7c4a-4ef9-dbb7-ab27c0fb6c19" }, "outputs": [ { "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp drat wt qsec vs am \\\n", " 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 \n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 \n", " 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 \n", " 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 \n", " 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 \n", " 5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 \n", " 6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 \n", " 7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 \n", " 8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 \n", " 9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 \n", " 10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 \n", " 11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 \n", " 12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 \n", " 13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 \n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 \n", " 15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 \n", " 16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 \n", " 17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 \n", " 18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 \n", " 19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 \n", " 20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 \n", " 21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 \n", " 22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 \n", " 23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 \n", " 24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 \n", " 25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 \n", " 26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 \n", " 27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 \n", " 28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 \n", " 29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 \n", " 30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 \n", " 31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 \n", " \n", " gear carb \n", " 0 4 4 \n", " 1 4 4 \n", " 2 4 1 \n", " 3 3 1 \n", " 4 3 2 \n", " 5 3 1 \n", " 6 3 4 \n", " 7 4 2 \n", " 8 4 2 \n", " 9 4 4 \n", " 10 4 4 \n", " 11 3 3 \n", " 12 3 3 \n", " 13 3 3 \n", " 14 3 4 \n", " 15 3 4 \n", " 16 3 4 \n", " 17 4 1 \n", " 18 4 2 \n", " 19 4 1 \n", " 20 3 1 \n", " 21 3 2 \n", " 22 3 2 \n", " 23 3 4 \n", " 24 3 2 \n", " 25 4 1 \n", " 26 5 2 \n", " 27 5 2 \n", " 28 5 4 \n", " 29 5 6 \n", " 30 5 8 \n", " 31 4 2 ,\n", " Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa\n", " 5 5.4 3.9 1.7 0.4 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica\n", " 5 150 5.9 3.0 5.1 1.8 virginica,\n", " len supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0\n", " 14 22.5 VC 1.0]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# extract all pages\n", "tabula.read_pdf(pdf_path, pages=\"all\", stream=True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "lW8GUsUvt00N" }, "source": [ "## Read partial area of PDF\n", "\n", "If you want to set a certain part of page, you can use `area` option.\n", "\n", "Note that as of tabula-py 2.0.0, `multiple_tables` option became `True` so if you want to use multiple `area` options like `[[0, 0, 100, 50], [0, 50, 100, 100]]`, you need to set `multiple_tables=False`." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 325 }, "colab_type": "code", "id": "Ea9NwvdYluSF", "outputId": "03b1acf7-09f6-4224-9c02-4ad8ddc85437" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0Sepal.WidthPetal.LengthPetal.WidthSpecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
53.91.70.4setosaNaN
\n", "
" ], "text/plain": [ " Unnamed: 0 Sepal.Width Petal.Length Petal.Width Species\n", "0 5.1 3.5 1.4 0.2 setosa\n", "1 4.9 3.0 1.4 0.2 setosa\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa\n", "5 3.9 1.7 0.4 setosa NaN" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# set area option\n", "dfs = tabula.read_pdf(pdf_path, area=[126,149,212,462], pages=2)\n", "dfs[0]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_G5QO2-pPgbw" }, "source": [ "## Read giving column information" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "4kByGX6GPf_c", "outputId": "9370bcba-3b0b-4546-baf8-919bfdac65a8" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ApellidoNombreMatriculaCuitFechaTipoImporte
0MENAJUAN MARTÍN27.083.46020-27083460-509/10/2013EFECTIVO$ 10.000,00
1MOLLEMATÍAS25.348.54720-25348547-809/10/2013EFECTIVO$ 10.000,00
2MOLLEVIFEDERICO OSCAR25.028.24620-25028246-009/10/2013EFECTIVO$ 10.000,00
3PERAZZOPABLO DANIEL25.348.39420-25348394-709/10/2013EFECTIVO$ 10.000,00
4PICARDIFRANCO EDUARDO27.382.27120-27382271-309/10/2013EFECTIVO$ 10.000,00
5PISONICARLOS ENRIQUE26.034.82320-26034823-009/10/2013EFECTIVO$ 10.000,00
6PONTORIEROMARÍA PAULA23.249.59727-23249597-409/10/2013EFECTIVO$ 10.000,00
7PULESTONJUAN MIGUEL11.895.66120-11895661-409/10/2013EFECTIVO$ 10.000,00
8REMÓNMABEL AURORA11.292.93927-11292939-309/10/2013EFECTIVO$ 10.000,00
9SARRABAYROUSEDIEGO24.662.89920-24662899-909/10/2013EFECTIVO$ 10.000,00
10SPATOLAANALÍA CARMEN24.560.92227-24560922-709/10/2013EFECTIVO$ 10.000,00
11STAMILLASERGIO ADRIÁN29.364.22620-29364226-609/10/2013EFECTIVO$ 10.000,00
12SZARANGOWICZGUSTAVO ALEJANDRO25.096.24420-25096244-509/10/2013EFECTIVO$ 10.000,00
13TAILHADELUIS RODOLFO21.386.29920-21386299-609/10/2013EFECTIVO$ 10.000,00
14TEDESCHIADRIÁN ALBERTO24.171.50720-24171507-909/10/2013EFECTIVO$ 10.000,00
15URRIZAMARÍA TERESA18.135.60427-18135604-409/10/2013EFECTIVO$ 10.000,00
16USTARROZGERÓNIMO JAVIER24.912.94720-24912947-009/10/2013EFECTIVO$ 10.000,00
17VALSANGIACOMO BLANCOFERNANDO JORGE26.800.20320-26800203-109/10/2013EFECTIVO$ 10.000,00
18VICENTEPABLO ARIEL21.897.58620-21897586-109/10/2013EFECTIVO$ 10.000,00
19AMBURIHUGO ALBERTO14.096.56020-14096560-009/10/2013EFECTIVO$ 20.000,00
20BERRACLAUDIA SUSANA14.433.11227-14433112-009/10/2013EFECTIVO$ 10.000,00
21LASALARICARDO ALBERTO21.760.81120-21760811-309/10/2013EFECTIVO$ 10.000,00
22AZPITARTEMARCELO CARLOS16.018.56920-16018569-509/10/2013EFECTIVO$ 10.000,00
23BERARDOCRISTINA BEATRIZ12.609.61527-12609615-709/10/2013EFECTIVO$ 10.000,00
24OREIRORODOLFO MIGUEL13.655.72823-13655728-909/10/2013EFECTIVO$ 10.000,00
25FAIENZAMIGUEL ERNESTO27.264.63820-27264638-509/10/2013EFECTIVO$ 20.000,00
26GRANILLO FERNANDEZJUAN MANUEL27.235.28020-27235280-209/10/2013EFECTIVO$ 10.000,00
27RODRIGUEZ PINGITORECLAUDIA MONICA23.343.33227-23343332-809/10/2013EFECTIVO$ 10.000,00
28CORBELLATERESITA GRACIELA11.353.49127-11353491-009/10/2013EFECTIVO$ 5.000,00
29CORVINOGERMAN HORACIO27.491.52420-27491524-309/10/2013EFECTIVO$ 20.000,00
30GARCIA DELATOURAGUSTINA29.501.23027-29501230-209/10/2013EFECTIVO$ 5.000,00
31AGUIRRELIDIA ELIZABETH17.997.63427-17997634-509/10/2013EFECTIVO$ 5.000,00
32FORNERORAUL OSCAR10.177.16723-10177167-909/10/2013EFECTIVO$ 5.000,00
33SKOCILICNATALIA ELIZABETH30.237.73727-30237737-009/10/2013EFECTIVO$ 5.000,00
34SARRACARMEN11.812.38127-11812381-109/10/2013EFECTIVO$ 20.000,00
35VIVALDOMARÍA ITATÍ20.458.21427-20458214-409/10/2013EFECTIVO$ 10.000,00
36LORENZOFERNANDO LUIS22.608.38020-22608380-509/10/2013EFECTIVO$ 15.000,00
37VESTILLEROCARLOS SEBASTIAN25.638.59520-25638595-409/10/2013EFECTIVO$ 10.000,00
38CASTROMARIA VICTORIA22.642.06123-22642061-409/10/2013EFECTIVO$ 10.000,00
39PÉREZ SIMONDINIANDREA FABIANA17.768.99227-17768992-609/10/2013EFECTIVO$ 10.000,00
40CLAVERO MITRELILIANA INES11.176.76027-11176760-809/10/2013EFECTIVO$ 10.000,00
41SÁNCHEZMARIANA CLARA20.205.65127-20205651-809/10/2013EFECTIVO$ 10.000,00
42TALLÓNMATÍAS NORBERTO33.498.60120-33498601-309/10/2013EFECTIVO$ 10.000,00
43SUAREZFERNANDO11.633.29120-11633291-509/10/2013EFECTIVO$ 10.000,00
44TARSINOMARIA EVELYN23.276.48227-23276482-709/10/2013EFECTIVO$ 10.000,00
45GRIMBERG MARQUEZPAULA27.680.60027-27680600-409/10/2013EFECTIVO$ 10.000,00
46THORPMARIO18.179.10420-18179104-809/10/2013EFECTIVO$ 10.000,00
47BARABANLORENA ELIZABETH23.747.10627-23747106-209/10/2013EFECTIVO$ 10.000,00
48FRECHEROEZEQUIEL27.746.11520-27746115-409/10/2013EFECTIVO$ 10.000,00
49TORRESCARLOS HUGO25.957.22320-25957223-209/10/2013EFECTIVO$ 10.000,00
50BILLERESGASTON MARTIN23.301.94820-23301948-909/10/2013EFECTIVO$ 10.000,00
51RODRIGUEZEDGARDO JAVIER21.502.79320-21502793-809/10/2013EFECTIVO$ 10.000,00
52KARPINSKYENRIQUE MARCELO14.877.26620-14877266-609/10/2013EFECTIVO$ 10.000,00
53GRIMBERG MARQUEZJUAN CARLOS7.831.24020-07831240-909/10/2013EFECTIVO$ 10.000,00
54BOGADO GONZALEZJULIO BERNABE27.592.81420-27592814-409/10/2013EFECTIVO$ 10.000,00
55NaNNaNNaNNaNANEXO I-A-1 Página 12 de 14
\n", "
" ], "text/plain": [ " Apellido Nombre Matricula Cuit \\\n", "0 MENA JUAN MARTÍN 27.083.460 20-27083460-5 \n", "1 MOLLE MATÍAS 25.348.547 20-25348547-8 \n", "2 MOLLEVI FEDERICO OSCAR 25.028.246 20-25028246-0 \n", "3 PERAZZO PABLO DANIEL 25.348.394 20-25348394-7 \n", "4 PICARDI FRANCO EDUARDO 27.382.271 20-27382271-3 \n", "5 PISONI CARLOS ENRIQUE 26.034.823 20-26034823-0 \n", "6 PONTORIERO MARÍA PAULA 23.249.597 27-23249597-4 \n", "7 PULESTON JUAN MIGUEL 11.895.661 20-11895661-4 \n", "8 REMÓN MABEL AURORA 11.292.939 27-11292939-3 \n", "9 SARRABAYROUSE DIEGO 24.662.899 20-24662899-9 \n", "10 SPATOLA ANALÍA CARMEN 24.560.922 27-24560922-7 \n", "11 STAMILLA SERGIO ADRIÁN 29.364.226 20-29364226-6 \n", "12 SZARANGOWICZ GUSTAVO ALEJANDRO 25.096.244 20-25096244-5 \n", "13 TAILHADE LUIS RODOLFO 21.386.299 20-21386299-6 \n", "14 TEDESCHI ADRIÁN ALBERTO 24.171.507 20-24171507-9 \n", "15 URRIZA MARÍA TERESA 18.135.604 27-18135604-4 \n", "16 USTARROZ GERÓNIMO JAVIER 24.912.947 20-24912947-0 \n", "17 VALSANGIACOMO BLANC OFERNANDO JORGE 26.800.203 20-26800203-1 \n", "18 VICENTE PABLO ARIEL 21.897.586 20-21897586-1 \n", "19 AMBURI HUGO ALBERTO 14.096.560 20-14096560-0 \n", "20 BERRA CLAUDIA SUSANA 14.433.112 27-14433112-0 \n", "21 LASALA RICARDO ALBERTO 21.760.811 20-21760811-3 \n", "22 AZPITARTE MARCELO CARLOS 16.018.569 20-16018569-5 \n", "23 BERARDO CRISTINA BEATRIZ 12.609.615 27-12609615-7 \n", "24 OREIRO RODOLFO MIGUEL 13.655.728 23-13655728-9 \n", "25 FAIENZA MIGUEL ERNESTO 27.264.638 20-27264638-5 \n", "26 GRANILLO FERNANDEZ JUAN MANUEL 27.235.280 20-27235280-2 \n", "27 RODRIGUEZ PINGITORE CLAUDIA MONICA 23.343.332 27-23343332-8 \n", "28 CORBELLA TERESITA GRACIELA 11.353.491 27-11353491-0 \n", "29 CORVINO GERMAN HORACIO 27.491.524 20-27491524-3 \n", "30 GARCIA DELATOUR AGUSTINA 29.501.230 27-29501230-2 \n", "31 AGUIRRE LIDIA ELIZABETH 17.997.634 27-17997634-5 \n", "32 FORNERO RAUL OSCAR 10.177.167 23-10177167-9 \n", "33 SKOCILIC NATALIA ELIZABETH 30.237.737 27-30237737-0 \n", "34 SARRA CARMEN 11.812.381 27-11812381-1 \n", "35 VIVALDO MARÍA ITATÍ 20.458.214 27-20458214-4 \n", "36 LORENZO FERNANDO LUIS 22.608.380 20-22608380-5 \n", "37 VESTILLERO CARLOS SEBASTIAN 25.638.595 20-25638595-4 \n", "38 CASTRO MARIA VICTORIA 22.642.061 23-22642061-4 \n", "39 PÉREZ SIMONDINI ANDREA FABIANA 17.768.992 27-17768992-6 \n", "40 CLAVERO MITRE LILIANA INES 11.176.760 27-11176760-8 \n", "41 SÁNCHEZ MARIANA CLARA 20.205.651 27-20205651-8 \n", "42 TALLÓN MATÍAS NORBERTO 33.498.601 20-33498601-3 \n", "43 SUAREZ FERNANDO 11.633.291 20-11633291-5 \n", "44 TARSINO MARIA EVELYN 23.276.482 27-23276482-7 \n", "45 GRIMBERG MARQUEZ PAULA 27.680.600 27-27680600-4 \n", "46 THORP MARIO 18.179.104 20-18179104-8 \n", "47 BARABAN LORENA ELIZABETH 23.747.106 27-23747106-2 \n", "48 FRECHERO EZEQUIEL 27.746.115 20-27746115-4 \n", "49 TORRES CARLOS HUGO 25.957.223 20-25957223-2 \n", "50 BILLERES GASTON MARTIN 23.301.948 20-23301948-9 \n", "51 RODRIGUEZ EDGARDO JAVIER 21.502.793 20-21502793-8 \n", "52 KARPINSKY ENRIQUE MARCELO 14.877.266 20-14877266-6 \n", "53 GRIMBERG MARQUEZ JUAN CARLOS 7.831.240 20-07831240-9 \n", "54 BOGADO GONZALEZ JULIO BERNABE 27.592.814 20-27592814-4 \n", "55 NaN NaN NaN NaN \n", "\n", " Fecha Tipo Importe \n", "0 09/10/2013 EFECTIVO $ 10.000,00 \n", "1 09/10/2013 EFECTIVO $ 10.000,00 \n", "2 09/10/2013 EFECTIVO $ 10.000,00 \n", "3 09/10/2013 EFECTIVO $ 10.000,00 \n", "4 09/10/2013 EFECTIVO $ 10.000,00 \n", "5 09/10/2013 EFECTIVO $ 10.000,00 \n", "6 09/10/2013 EFECTIVO $ 10.000,00 \n", "7 09/10/2013 EFECTIVO $ 10.000,00 \n", "8 09/10/2013 EFECTIVO $ 10.000,00 \n", "9 09/10/2013 EFECTIVO $ 10.000,00 \n", "10 09/10/2013 EFECTIVO $ 10.000,00 \n", "11 09/10/2013 EFECTIVO $ 10.000,00 \n", "12 09/10/2013 EFECTIVO $ 10.000,00 \n", "13 09/10/2013 EFECTIVO $ 10.000,00 \n", "14 09/10/2013 EFECTIVO $ 10.000,00 \n", "15 09/10/2013 EFECTIVO $ 10.000,00 \n", "16 09/10/2013 EFECTIVO $ 10.000,00 \n", "17 09/10/2013 EFECTIVO $ 10.000,00 \n", "18 09/10/2013 EFECTIVO $ 10.000,00 \n", "19 09/10/2013 EFECTIVO $ 20.000,00 \n", "20 09/10/2013 EFECTIVO $ 10.000,00 \n", "21 09/10/2013 EFECTIVO $ 10.000,00 \n", "22 09/10/2013 EFECTIVO $ 10.000,00 \n", "23 09/10/2013 EFECTIVO $ 10.000,00 \n", "24 09/10/2013 EFECTIVO $ 10.000,00 \n", "25 09/10/2013 EFECTIVO $ 20.000,00 \n", "26 09/10/2013 EFECTIVO $ 10.000,00 \n", "27 09/10/2013 EFECTIVO $ 10.000,00 \n", "28 09/10/2013 EFECTIVO $ 5.000,00 \n", "29 09/10/2013 EFECTIVO $ 20.000,00 \n", "30 09/10/2013 EFECTIVO $ 5.000,00 \n", "31 09/10/2013 EFECTIVO $ 5.000,00 \n", "32 09/10/2013 EFECTIVO $ 5.000,00 \n", "33 09/10/2013 EFECTIVO $ 5.000,00 \n", "34 09/10/2013 EFECTIVO $ 20.000,00 \n", "35 09/10/2013 EFECTIVO $ 10.000,00 \n", "36 09/10/2013 EFECTIVO $ 15.000,00 \n", "37 09/10/2013 EFECTIVO $ 10.000,00 \n", "38 09/10/2013 EFECTIVO $ 10.000,00 \n", "39 09/10/2013 EFECTIVO $ 10.000,00 \n", "40 09/10/2013 EFECTIVO $ 10.000,00 \n", "41 09/10/2013 EFECTIVO $ 10.000,00 \n", "42 09/10/2013 EFECTIVO $ 10.000,00 \n", "43 09/10/2013 EFECTIVO $ 10.000,00 \n", "44 09/10/2013 EFECTIVO $ 10.000,00 \n", "45 09/10/2013 EFECTIVO $ 10.000,00 \n", "46 09/10/2013 EFECTIVO $ 10.000,00 \n", "47 09/10/2013 EFECTIVO $ 10.000,00 \n", "48 09/10/2013 EFECTIVO $ 10.000,00 \n", "49 09/10/2013 EFECTIVO $ 10.000,00 \n", "50 09/10/2013 EFECTIVO $ 10.000,00 \n", "51 09/10/2013 EFECTIVO $ 10.000,00 \n", "52 09/10/2013 EFECTIVO $ 10.000,00 \n", "53 09/10/2013 EFECTIVO $ 10.000,00 \n", "54 09/10/2013 EFECTIVO $ 10.000,00 \n", "55 ANE XO I-A-1 Págin a 12 de 14 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdf_path2 = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/campaign_donors.pdf\"\n", "\n", "dfs = tabula.read_pdf(pdf_path2, columns=[47, 147, 256, 310, 375, 431, 504], guess=False, pages=1)\n", "df = dfs[0].drop([\"Unnamed: 0\"], axis=1)\n", "df" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "kPjnNeHnuBr9" }, "source": [ "## Extract to JSON, TSV, or CSV\n", "\n", "tabula-py has capability to convert not only DataFrame but also JSON, TSV, or CSV. You can set output format with `output_format` option." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "-H1qqAQeluSO", "outputId": "45d889d0-bdb3-41b8-f8aa-b7b4c8fa4465" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n" ] }, { "data": { "text/plain": [ "[{'extraction_method': 'lattice',\n", " 'top': 125.17005,\n", " 'left': 247.14917,\n", " 'width': 292.90167236328125,\n", " 'height': 395.14886474609375,\n", " 'right': 540.05084,\n", " 'bottom': 520.3189,\n", " 'data': [[{'top': 125.17005,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.186347961425781,\n", " 'text': 'mpg'},\n", " {'top': 125.17005,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.186347961425781,\n", " 'text': 'cyl'},\n", " {'top': 125.17005,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.186347961425781,\n", " 'text': 'disp'},\n", " {'top': 125.17005,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.186347961425781,\n", " 'text': 'hp'},\n", " {'top': 125.17005,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.186347961425781,\n", " 'text': 'drat'},\n", " {'top': 125.17005,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.186347961425781,\n", " 'text': 'wt'},\n", " {'top': 125.17005,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.186347961425781,\n", " 'text': 'qsec'},\n", " {'top': 125.17005,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.186347961425781,\n", " 'text': 'vs'},\n", " {'top': 125.17005,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.186347961425781,\n", " 'text': 'am'},\n", " {'top': 125.17005,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.186347961425781,\n", " 'text': 'gear'}],\n", " [{'top': 137.3564,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.352630615234375,\n", " 'text': '21.0'},\n", " {'top': 137.3564,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.352630615234375,\n", " 'text': '6'},\n", " {'top': 137.3564,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.352630615234375,\n", " 'text': '160.0'},\n", " {'top': 137.3564,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.352630615234375,\n", " 'text': '110'},\n", " {'top': 137.3564,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.352630615234375,\n", " 'text': '3.90'},\n", " {'top': 137.3564,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.352630615234375,\n", " 'text': '2.620'},\n", " {'top': 137.3564,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.352630615234375,\n", " 'text': '16.46'},\n", " {'top': 137.3564,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.352630615234375,\n", " 'text': '0'},\n", " {'top': 137.3564,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.352630615234375,\n", " 'text': '1'},\n", " {'top': 137.3564,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.352630615234375,\n", " 'text': '4'}],\n", " [{'top': 149.70903,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35186767578125,\n", " 'text': '21.0'},\n", " {'top': 149.70903,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35186767578125,\n", " 'text': '6'},\n", " {'top': 149.70903,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35186767578125,\n", " 'text': '160.0'},\n", " {'top': 149.70903,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35186767578125,\n", " 'text': '110'},\n", " {'top': 149.70903,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35186767578125,\n", " 'text': '3.90'},\n", " {'top': 149.70903,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35186767578125,\n", " 'text': '2.875'},\n", " {'top': 149.70903,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35186767578125,\n", " 'text': '17.02'},\n", " {'top': 149.70903,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35186767578125,\n", " 'text': '0'},\n", " {'top': 149.70903,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35186767578125,\n", " 'text': '1'},\n", " {'top': 149.70903,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35186767578125,\n", " 'text': '4'}],\n", " [{'top': 162.0609,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35662841796875,\n", " 'text': '22.8'},\n", " {'top': 162.0609,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35662841796875,\n", " 'text': '4'},\n", " {'top': 162.0609,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35662841796875,\n", " 'text': '108.0'},\n", " {'top': 162.0609,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35662841796875,\n", " 'text': '93'},\n", " {'top': 162.0609,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35662841796875,\n", " 'text': '3.85'},\n", " {'top': 162.0609,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35662841796875,\n", " 'text': '2.320'},\n", " {'top': 162.0609,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35662841796875,\n", " 'text': '18.61'},\n", " {'top': 162.0609,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35662841796875,\n", " 'text': '1'},\n", " {'top': 162.0609,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35662841796875,\n", " 'text': '1'},\n", " {'top': 162.0609,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35662841796875,\n", " 'text': '4'}],\n", " [{'top': 174.41753,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.352005004882812,\n", " 'text': '21.4'},\n", " {'top': 174.41753,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.352005004882812,\n", " 'text': '6'},\n", " {'top': 174.41753,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.352005004882812,\n", " 'text': '258.0'},\n", " {'top': 174.41753,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.352005004882812,\n", " 'text': '110'},\n", " {'top': 174.41753,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.352005004882812,\n", " 'text': '3.08'},\n", " {'top': 174.41753,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.352005004882812,\n", " 'text': '3.215'},\n", " {'top': 174.41753,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.352005004882812,\n", " 'text': '19.44'},\n", " {'top': 174.41753,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.352005004882812,\n", " 'text': '1'},\n", " {'top': 174.41753,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.352005004882812,\n", " 'text': '0'},\n", " {'top': 174.41753,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.352005004882812,\n", " 'text': '3'}],\n", " [{'top': 186.76953,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351882934570312,\n", " 'text': '18.7'},\n", " {'top': 186.76953,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351882934570312,\n", " 'text': '8'},\n", " {'top': 186.76953,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351882934570312,\n", " 'text': '360.0'},\n", " {'top': 186.76953,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351882934570312,\n", " 'text': '175'},\n", " {'top': 186.76953,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351882934570312,\n", " 'text': '3.15'},\n", " {'top': 186.76953,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351882934570312,\n", " 'text': '3.440'},\n", " {'top': 186.76953,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351882934570312,\n", " 'text': '17.02'},\n", " {'top': 186.76953,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351882934570312,\n", " 'text': '0'},\n", " {'top': 186.76953,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351882934570312,\n", " 'text': '0'},\n", " {'top': 186.76953,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351882934570312,\n", " 'text': '3'}],\n", " [{'top': 199.12141,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.356597900390625,\n", " 'text': '18.1'},\n", " {'top': 199.12141,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.356597900390625,\n", " 'text': '6'},\n", " {'top': 199.12141,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.356597900390625,\n", " 'text': '225.0'},\n", " {'top': 199.12141,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.356597900390625,\n", " 'text': '105'},\n", " {'top': 199.12141,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.356597900390625,\n", " 'text': '2.76'},\n", " {'top': 199.12141,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.356597900390625,\n", " 'text': '3.460'},\n", " {'top': 199.12141,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.356597900390625,\n", " 'text': '20.22'},\n", " {'top': 199.12141,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.356597900390625,\n", " 'text': '1'},\n", " {'top': 199.12141,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.356597900390625,\n", " 'text': '0'},\n", " {'top': 199.12141,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.356597900390625,\n", " 'text': '3'}],\n", " [{'top': 211.47801,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351959228515625,\n", " 'text': '14.3'},\n", " {'top': 211.47801,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351959228515625,\n", " 'text': '8'},\n", " {'top': 211.47801,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351959228515625,\n", " 'text': '360.0'},\n", " {'top': 211.47801,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351959228515625,\n", " 'text': '245'},\n", " {'top': 211.47801,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351959228515625,\n", " 'text': '3.21'},\n", " {'top': 211.47801,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351959228515625,\n", " 'text': '3.570'},\n", " {'top': 211.47801,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351959228515625,\n", " 'text': '15.84'},\n", " {'top': 211.47801,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351959228515625,\n", " 'text': '0'},\n", " {'top': 211.47801,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351959228515625,\n", " 'text': '0'},\n", " {'top': 211.47801,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351959228515625,\n", " 'text': '3'}],\n", " [{'top': 223.82997,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351806640625,\n", " 'text': '24.4'},\n", " {'top': 223.82997,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351806640625,\n", " 'text': '4'},\n", " {'top': 223.82997,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351806640625,\n", " 'text': '146.7'},\n", " {'top': 223.82997,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351806640625,\n", " 'text': '62'},\n", " {'top': 223.82997,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351806640625,\n", " 'text': '3.69'},\n", " {'top': 223.82997,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351806640625,\n", " 'text': '3.190'},\n", " {'top': 223.82997,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351806640625,\n", " 'text': '20.00'},\n", " {'top': 223.82997,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351806640625,\n", " 'text': '1'},\n", " {'top': 223.82997,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351806640625,\n", " 'text': '0'},\n", " {'top': 223.82997,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351806640625,\n", " 'text': '4'}],\n", " [{'top': 236.18178,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.356719970703125,\n", " 'text': '22.8'},\n", " {'top': 236.18178,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.356719970703125,\n", " 'text': '4'},\n", " {'top': 236.18178,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.356719970703125,\n", " 'text': '140.8'},\n", " {'top': 236.18178,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.356719970703125,\n", " 'text': '95'},\n", " {'top': 236.18178,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.356719970703125,\n", " 'text': '3.92'},\n", " {'top': 236.18178,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.356719970703125,\n", " 'text': '3.150'},\n", " {'top': 236.18178,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.356719970703125,\n", " 'text': '22.90'},\n", " {'top': 236.18178,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.356719970703125,\n", " 'text': '1'},\n", " {'top': 236.18178,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.356719970703125,\n", " 'text': '0'},\n", " {'top': 236.18178,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.356719970703125,\n", " 'text': '4'}],\n", " [{'top': 248.5385,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351882934570312,\n", " 'text': '19.2'},\n", " {'top': 248.5385,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351882934570312,\n", " 'text': '6'},\n", " {'top': 248.5385,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351882934570312,\n", " 'text': '167.6'},\n", " {'top': 248.5385,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351882934570312,\n", " 'text': '123'},\n", " {'top': 248.5385,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351882934570312,\n", " 'text': '3.92'},\n", " {'top': 248.5385,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351882934570312,\n", " 'text': '3.440'},\n", " {'top': 248.5385,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351882934570312,\n", " 'text': '18.30'},\n", " {'top': 248.5385,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351882934570312,\n", " 'text': '1'},\n", " {'top': 248.5385,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351882934570312,\n", " 'text': '0'},\n", " {'top': 248.5385,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351882934570312,\n", " 'text': '4'}],\n", " [{'top': 260.89038,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.3564453125,\n", " 'text': '17.8'},\n", " {'top': 260.89038,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.3564453125,\n", " 'text': '6'},\n", " {'top': 260.89038,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.3564453125,\n", " 'text': '167.6'},\n", " {'top': 260.89038,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.3564453125,\n", " 'text': '123'},\n", " {'top': 260.89038,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.3564453125,\n", " 'text': '3.92'},\n", " {'top': 260.89038,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.3564453125,\n", " 'text': '3.440'},\n", " {'top': 260.89038,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.3564453125,\n", " 'text': '18.90'},\n", " {'top': 260.89038,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.3564453125,\n", " 'text': '1'},\n", " {'top': 260.89038,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.3564453125,\n", " 'text': '0'},\n", " {'top': 260.89038,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.3564453125,\n", " 'text': '4'}],\n", " [{'top': 273.24683,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.352142333984375,\n", " 'text': '16.4'},\n", " {'top': 273.24683,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.352142333984375,\n", " 'text': '8'},\n", " {'top': 273.24683,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.352142333984375,\n", " 'text': '275.8'},\n", " {'top': 273.24683,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.352142333984375,\n", " 'text': '180'},\n", " {'top': 273.24683,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.352142333984375,\n", " 'text': '3.07'},\n", " {'top': 273.24683,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.352142333984375,\n", " 'text': '4.070'},\n", " {'top': 273.24683,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.352142333984375,\n", " 'text': '17.40'},\n", " {'top': 273.24683,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.352142333984375,\n", " 'text': '0'},\n", " {'top': 273.24683,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.352142333984375,\n", " 'text': '0'},\n", " {'top': 273.24683,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.352142333984375,\n", " 'text': '3'}],\n", " [{'top': 285.59897,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35186767578125,\n", " 'text': '17.3'},\n", " {'top': 285.59897,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35186767578125,\n", " 'text': '8'},\n", " {'top': 285.59897,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35186767578125,\n", " 'text': '275.8'},\n", " {'top': 285.59897,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35186767578125,\n", " 'text': '180'},\n", " {'top': 285.59897,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35186767578125,\n", " 'text': '3.07'},\n", " {'top': 285.59897,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35186767578125,\n", " 'text': '3.730'},\n", " {'top': 285.59897,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35186767578125,\n", " 'text': '17.60'},\n", " {'top': 285.59897,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35186767578125,\n", " 'text': '0'},\n", " {'top': 285.59897,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35186767578125,\n", " 'text': '0'},\n", " {'top': 285.59897,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35186767578125,\n", " 'text': '3'}],\n", " [{'top': 297.95084,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.357086181640625,\n", " 'text': '15.2'},\n", " {'top': 297.95084,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.357086181640625,\n", " 'text': '8'},\n", " {'top': 297.95084,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.357086181640625,\n", " 'text': '275.8'},\n", " {'top': 297.95084,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.357086181640625,\n", " 'text': '180'},\n", " {'top': 297.95084,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.357086181640625,\n", " 'text': '3.07'},\n", " {'top': 297.95084,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.357086181640625,\n", " 'text': '3.780'},\n", " {'top': 297.95084,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.357086181640625,\n", " 'text': '18.00'},\n", " {'top': 297.95084,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.357086181640625,\n", " 'text': '0'},\n", " {'top': 297.95084,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.357086181640625,\n", " 'text': '0'},\n", " {'top': 297.95084,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.357086181640625,\n", " 'text': '3'}],\n", " [{'top': 310.30792,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.3515625,\n", " 'text': '10.4'},\n", " {'top': 310.30792,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.3515625,\n", " 'text': '8'},\n", " {'top': 310.30792,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.3515625,\n", " 'text': '472.0'},\n", " {'top': 310.30792,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.3515625,\n", " 'text': '205'},\n", " {'top': 310.30792,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.3515625,\n", " 'text': '2.93'},\n", " {'top': 310.30792,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.3515625,\n", " 'text': '5.250'},\n", " {'top': 310.30792,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.3515625,\n", " 'text': '17.98'},\n", " {'top': 310.30792,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.3515625,\n", " 'text': '0'},\n", " {'top': 310.30792,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.3515625,\n", " 'text': '0'},\n", " {'top': 310.30792,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.3515625,\n", " 'text': '3'}],\n", " [{'top': 322.6595,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35186767578125,\n", " 'text': '10.4'},\n", " {'top': 322.6595,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35186767578125,\n", " 'text': '8'},\n", " {'top': 322.6595,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35186767578125,\n", " 'text': '460.0'},\n", " {'top': 322.6595,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35186767578125,\n", " 'text': '215'},\n", " {'top': 322.6595,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35186767578125,\n", " 'text': '3.00'},\n", " {'top': 322.6595,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35186767578125,\n", " 'text': '5.424'},\n", " {'top': 322.6595,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35186767578125,\n", " 'text': '17.82'},\n", " {'top': 322.6595,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35186767578125,\n", " 'text': '0'},\n", " {'top': 322.6595,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35186767578125,\n", " 'text': '0'},\n", " {'top': 322.6595,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35186767578125,\n", " 'text': '3'}],\n", " [{'top': 335.01135,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.357086181640625,\n", " 'text': '14.7'},\n", " {'top': 335.01135,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.357086181640625,\n", " 'text': '8'},\n", " {'top': 335.01135,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.357086181640625,\n", " 'text': '440.0'},\n", " {'top': 335.01135,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.357086181640625,\n", " 'text': '230'},\n", " {'top': 335.01135,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.357086181640625,\n", " 'text': '3.23'},\n", " {'top': 335.01135,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.357086181640625,\n", " 'text': '5.345'},\n", " {'top': 335.01135,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.357086181640625,\n", " 'text': '17.42'},\n", " {'top': 335.01135,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.357086181640625,\n", " 'text': '0'},\n", " {'top': 335.01135,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.357086181640625,\n", " 'text': '0'},\n", " {'top': 335.01135,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.357086181640625,\n", " 'text': '3'}],\n", " [{'top': 347.36844,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351531982421875,\n", " 'text': '32.4'},\n", " {'top': 347.36844,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351531982421875,\n", " 'text': '4'},\n", " {'top': 347.36844,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351531982421875,\n", " 'text': '78.7'},\n", " {'top': 347.36844,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351531982421875,\n", " 'text': '66'},\n", " {'top': 347.36844,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351531982421875,\n", " 'text': '4.08'},\n", " {'top': 347.36844,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351531982421875,\n", " 'text': '2.200'},\n", " {'top': 347.36844,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351531982421875,\n", " 'text': '19.47'},\n", " {'top': 347.36844,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351531982421875,\n", " 'text': '1'},\n", " {'top': 347.36844,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351531982421875,\n", " 'text': '1'},\n", " {'top': 347.36844,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351531982421875,\n", " 'text': '4'}],\n", " [{'top': 359.71997,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.3570556640625,\n", " 'text': '30.4'},\n", " {'top': 359.71997,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.3570556640625,\n", " 'text': '4'},\n", " {'top': 359.71997,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.3570556640625,\n", " 'text': '75.7'},\n", " {'top': 359.71997,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.3570556640625,\n", " 'text': '52'},\n", " {'top': 359.71997,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.3570556640625,\n", " 'text': '4.93'},\n", " {'top': 359.71997,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.3570556640625,\n", " 'text': '1.615'},\n", " {'top': 359.71997,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.3570556640625,\n", " 'text': '18.52'},\n", " {'top': 359.71997,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.3570556640625,\n", " 'text': '1'},\n", " {'top': 359.71997,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.3570556640625,\n", " 'text': '1'},\n", " {'top': 359.71997,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.3570556640625,\n", " 'text': '4'}],\n", " [{'top': 372.07703,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351959228515625,\n", " 'text': '33.9'},\n", " {'top': 372.07703,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351959228515625,\n", " 'text': '4'},\n", " {'top': 372.07703,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351959228515625,\n", " 'text': '71.1'},\n", " {'top': 372.07703,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351959228515625,\n", " 'text': '65'},\n", " {'top': 372.07703,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351959228515625,\n", " 'text': '4.22'},\n", " {'top': 372.07703,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351959228515625,\n", " 'text': '1.835'},\n", " {'top': 372.07703,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351959228515625,\n", " 'text': '19.90'},\n", " {'top': 372.07703,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351959228515625,\n", " 'text': '1'},\n", " {'top': 372.07703,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351959228515625,\n", " 'text': '1'},\n", " {'top': 372.07703,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351959228515625,\n", " 'text': '4'}],\n", " [{'top': 384.429,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351531982421875,\n", " 'text': '21.5'},\n", " {'top': 384.429,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351531982421875,\n", " 'text': '4'},\n", " {'top': 384.429,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351531982421875,\n", " 'text': '120.1'},\n", " {'top': 384.429,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351531982421875,\n", " 'text': '97'},\n", " {'top': 384.429,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351531982421875,\n", " 'text': '3.70'},\n", " {'top': 384.429,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351531982421875,\n", " 'text': '2.465'},\n", " {'top': 384.429,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351531982421875,\n", " 'text': '20.01'},\n", " {'top': 384.429,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351531982421875,\n", " 'text': '1'},\n", " {'top': 384.429,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351531982421875,\n", " 'text': '0'},\n", " {'top': 384.429,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351531982421875,\n", " 'text': '3'}],\n", " [{'top': 396.78052,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.357025146484375,\n", " 'text': '15.5'},\n", " {'top': 396.78052,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.357025146484375,\n", " 'text': '8'},\n", " {'top': 396.78052,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.357025146484375,\n", " 'text': '318.0'},\n", " {'top': 396.78052,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.357025146484375,\n", " 'text': '150'},\n", " {'top': 396.78052,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.357025146484375,\n", " 'text': '2.76'},\n", " {'top': 396.78052,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.357025146484375,\n", " 'text': '3.520'},\n", " {'top': 396.78052,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.357025146484375,\n", " 'text': '16.87'},\n", " {'top': 396.78052,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.357025146484375,\n", " 'text': '0'},\n", " {'top': 396.78052,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.357025146484375,\n", " 'text': '0'},\n", " {'top': 396.78052,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.357025146484375,\n", " 'text': '3'}],\n", " [{'top': 409.13754,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35205078125,\n", " 'text': '15.2'},\n", " {'top': 409.13754,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35205078125,\n", " 'text': '8'},\n", " {'top': 409.13754,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35205078125,\n", " 'text': '304.0'},\n", " {'top': 409.13754,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35205078125,\n", " 'text': '150'},\n", " {'top': 409.13754,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35205078125,\n", " 'text': '3.15'},\n", " {'top': 409.13754,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35205078125,\n", " 'text': '3.435'},\n", " {'top': 409.13754,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35205078125,\n", " 'text': '17.30'},\n", " {'top': 409.13754,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35205078125,\n", " 'text': '0'},\n", " {'top': 409.13754,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35205078125,\n", " 'text': '0'},\n", " {'top': 409.13754,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35205078125,\n", " 'text': '3'}],\n", " [{'top': 421.4896,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351348876953125,\n", " 'text': '13.3'},\n", " {'top': 421.4896,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351348876953125,\n", " 'text': '8'},\n", " {'top': 421.4896,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351348876953125,\n", " 'text': '350.0'},\n", " {'top': 421.4896,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351348876953125,\n", " 'text': '245'},\n", " {'top': 421.4896,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351348876953125,\n", " 'text': '3.73'},\n", " {'top': 421.4896,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351348876953125,\n", " 'text': '3.840'},\n", " {'top': 421.4896,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351348876953125,\n", " 'text': '15.41'},\n", " {'top': 421.4896,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351348876953125,\n", " 'text': '0'},\n", " {'top': 421.4896,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351348876953125,\n", " 'text': '0'},\n", " {'top': 421.4896,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351348876953125,\n", " 'text': '3'}],\n", " [{'top': 433.84094,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.357208251953125,\n", " 'text': '19.2'},\n", " {'top': 433.84094,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.357208251953125,\n", " 'text': '8'},\n", " {'top': 433.84094,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.357208251953125,\n", " 'text': '400.0'},\n", " {'top': 433.84094,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.357208251953125,\n", " 'text': '175'},\n", " {'top': 433.84094,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.357208251953125,\n", " 'text': '3.08'},\n", " {'top': 433.84094,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.357208251953125,\n", " 'text': '3.845'},\n", " {'top': 433.84094,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.357208251953125,\n", " 'text': '17.05'},\n", " {'top': 433.84094,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.357208251953125,\n", " 'text': '0'},\n", " {'top': 433.84094,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.357208251953125,\n", " 'text': '0'},\n", " {'top': 433.84094,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.357208251953125,\n", " 'text': '3'}],\n", " [{'top': 446.19815,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35186767578125,\n", " 'text': '27.3'},\n", " {'top': 446.19815,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35186767578125,\n", " 'text': '4'},\n", " {'top': 446.19815,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35186767578125,\n", " 'text': '79.0'},\n", " {'top': 446.19815,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35186767578125,\n", " 'text': '66'},\n", " {'top': 446.19815,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35186767578125,\n", " 'text': '4.08'},\n", " {'top': 446.19815,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35186767578125,\n", " 'text': '1.935'},\n", " {'top': 446.19815,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35186767578125,\n", " 'text': '18.90'},\n", " {'top': 446.19815,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35186767578125,\n", " 'text': '1'},\n", " {'top': 446.19815,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35186767578125,\n", " 'text': '1'},\n", " {'top': 446.19815,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35186767578125,\n", " 'text': '4'}],\n", " [{'top': 458.55002,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35150146484375,\n", " 'text': '26.0'},\n", " {'top': 458.55002,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35150146484375,\n", " 'text': '4'},\n", " {'top': 458.55002,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35150146484375,\n", " 'text': '120.3'},\n", " {'top': 458.55002,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35150146484375,\n", " 'text': '91'},\n", " {'top': 458.55002,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35150146484375,\n", " 'text': '4.43'},\n", " {'top': 458.55002,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35150146484375,\n", " 'text': '2.140'},\n", " {'top': 458.55002,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35150146484375,\n", " 'text': '16.70'},\n", " {'top': 458.55002,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35150146484375,\n", " 'text': '0'},\n", " {'top': 458.55002,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35150146484375,\n", " 'text': '1'},\n", " {'top': 458.55002,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35150146484375,\n", " 'text': '5'}],\n", " [{'top': 470.90152,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.357025146484375,\n", " 'text': '30.4'},\n", " {'top': 470.90152,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.357025146484375,\n", " 'text': '4'},\n", " {'top': 470.90152,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.357025146484375,\n", " 'text': '95.1'},\n", " {'top': 470.90152,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.357025146484375,\n", " 'text': '113'},\n", " {'top': 470.90152,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.357025146484375,\n", " 'text': '3.77'},\n", " {'top': 470.90152,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.357025146484375,\n", " 'text': '1.513'},\n", " {'top': 470.90152,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.357025146484375,\n", " 'text': '16.90'},\n", " {'top': 470.90152,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.357025146484375,\n", " 'text': '1'},\n", " {'top': 470.90152,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.357025146484375,\n", " 'text': '1'},\n", " {'top': 470.90152,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.357025146484375,\n", " 'text': '5'}],\n", " [{'top': 483.25854,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.351776123046875,\n", " 'text': '15.8'},\n", " {'top': 483.25854,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.351776123046875,\n", " 'text': '8'},\n", " {'top': 483.25854,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.351776123046875,\n", " 'text': '351.0'},\n", " {'top': 483.25854,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.351776123046875,\n", " 'text': '264'},\n", " {'top': 483.25854,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.351776123046875,\n", " 'text': '4.22'},\n", " {'top': 483.25854,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.351776123046875,\n", " 'text': '3.170'},\n", " {'top': 483.25854,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.351776123046875,\n", " 'text': '14.50'},\n", " {'top': 483.25854,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.351776123046875,\n", " 'text': '0'},\n", " {'top': 483.25854,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.351776123046875,\n", " 'text': '1'},\n", " {'top': 483.25854,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.351776123046875,\n", " 'text': '5'}],\n", " [{'top': 495.61032,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.356109619140625,\n", " 'text': '19.7'},\n", " {'top': 495.61032,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.356109619140625,\n", " 'text': '6'},\n", " {'top': 495.61032,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.356109619140625,\n", " 'text': '145.0'},\n", " {'top': 495.61032,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.356109619140625,\n", " 'text': '175'},\n", " {'top': 495.61032,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.356109619140625,\n", " 'text': '3.62'},\n", " {'top': 495.61032,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.356109619140625,\n", " 'text': '2.770'},\n", " {'top': 495.61032,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.356109619140625,\n", " 'text': '15.50'},\n", " {'top': 495.61032,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.356109619140625,\n", " 'text': '0'},\n", " {'top': 495.61032,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.356109619140625,\n", " 'text': '1'},\n", " {'top': 495.61032,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.356109619140625,\n", " 'text': '5'}],\n", " [{'top': 507.96643,\n", " 'left': 247.14917,\n", " 'width': 30.773834228515625,\n", " 'height': 12.35247802734375,\n", " 'text': '15.0'},\n", " {'top': 507.96643,\n", " 'left': 277.923,\n", " 'width': 24.407867431640625,\n", " 'height': 12.35247802734375,\n", " 'text': '8'},\n", " {'top': 507.96643,\n", " 'left': 302.33087,\n", " 'width': 34.6478271484375,\n", " 'height': 12.35247802734375,\n", " 'text': '301.0'},\n", " {'top': 507.96643,\n", " 'left': 336.9787,\n", " 'width': 26.899566650390625,\n", " 'height': 12.35247802734375,\n", " 'text': '335'},\n", " {'top': 507.96643,\n", " 'left': 363.87827,\n", " 'width': 30.24810791015625,\n", " 'height': 12.35247802734375,\n", " 'text': '3.54'},\n", " {'top': 507.96643,\n", " 'left': 394.12637,\n", " 'width': 34.64752197265625,\n", " 'height': 12.35247802734375,\n", " 'text': '3.570'},\n", " {'top': 507.96643,\n", " 'left': 428.7739,\n", " 'width': 34.64801025390625,\n", " 'height': 12.35247802734375,\n", " 'text': '14.60'},\n", " {'top': 507.96643,\n", " 'left': 463.4219,\n", " 'width': 21.1429443359375,\n", " 'height': 12.35247802734375,\n", " 'text': '0'},\n", " {'top': 507.96643,\n", " 'left': 484.56485,\n", " 'width': 25.238006591796875,\n", " 'height': 12.35247802734375,\n", " 'text': '1'},\n", " {'top': 507.96643,\n", " 'left': 509.80286,\n", " 'width': 30.24798583984375,\n", " 'height': 12.35247802734375,\n", " 'text': '5'}]]}]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# read pdf as JSON\n", "tabula.read_pdf(pdf_path, output_format=\"json\")" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "tzXgZzOLuchk" }, "source": [ "## Convert PDF tables into CSV, TSV, or JSON files\n", "\n", "You can convert files directly rather creating Python objects with `convert_into()` function." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 163 }, "colab_type": "code", "id": "7wA5RL3SluSV", "outputId": "7c740d0a-1a85-42fb-9f3d-c351a93a336f" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[{\"extraction_method\":\"stream\",\"top\":124.0,\"left\":154.0,\"width\":411.0,\"height\":408.0,\"right\":565.0,\"bottom\":532.0,\"data\":[[{\"top\":0.0,\"left\":0.0,\"width\":0.0,\"height\":0.0,\"text\":\"\"},{\"top\":129.15,\"left\":253.13,\"width\":20.36700439453125,\"height\":4.420000076293945,\"text\":\"mpg\"},{\"top\":129.15,\"left\":283.9,\"width\":13.915863037109375,\"height\":4.420000076293945,\"text\":\"cyl\"},{\"top\":129.15,\"left\":313.23,\"width\":19.3109130859375,\"height\":4.420000076293945,\"text\":\"disp\"},{\"top\":129.15,\"left\":346.83,\"width\":12.783050537109375,\"height\":4.420000076293945,\"text\":\"hp\"},{\"top\":129.15,\"left\":369.86,\"width\":20.029754638671875,\"height\":4.420000076293945,\"text\":\"drat\"},{\"top\":129.15,\"left\":411.73,\"width\":12.568695068359375,\"height\":4.420000076293945,\"text\":\"wt\"},{\"top\":129.15,\"left\":439.4,\"width\":19.508636474609375,\"height\":4.420000076293945,\"text\":\"qsec\"},{\"top\":129.15,\"left\":469.4,\"width\":10.634918212890625,\"height\":4.420000076293945,\"text\":\"vs\"},{\"top\":129.15,\"left\":490.54,\"width\":15.031646728515625,\"height\":4.420000076293945,\"text\":\"am\"},{\"top\":129.15,\"left\":515.78,\"width\":19.665771484375,\"height\":4.420000076293945,\"text\":\"gear\"},{\"top\":129.15,\"left\":546.03,\"width\":18.849998474121094,\"height\":4.420000076293945,\"text\":\"carb\"}],[{\"top\":141.5,\"left\":154.69,\"width\":53.80647277832031,\"height\":4.420000076293945,\"text\":\"Mazda RX4\"},{\"top\":141.5,\"left\":254.23,\"width\":19.141342163085938,\"height\":4.420000076293945,\"text\":\"21.0\"},{\"top\":141.5,\"left\":291.37,\"width\":6.565704345703125,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":141.5,\"left\":308.31,\"width\":24.1099853515625,\"height\":4.420000076293945,\"text\":\"160.0\"},{\"top\":141.5,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"110\"},{\"top\":141.5,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.90\"},{\"top\":141.5,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"2.620\"},{\"top\":141.5,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"16.46\"},{\"top\":141.5,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":141.5,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":141.5,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":141.5,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":153.85,\"left\":154.69,\"width\":76.44853210449219,\"height\":4.420000076293945,\"text\":\"Mazda RX4 Wag\"},{\"top\":153.85,\"left\":254.23,\"width\":19.139389038085938,\"height\":4.420000076293945,\"text\":\"21.0\"},{\"top\":153.85,\"left\":291.37,\"width\":6.5650634765625,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":153.85,\"left\":308.31,\"width\":24.1099853515625,\"height\":4.420000076293945,\"text\":\"160.0\"},{\"top\":153.85,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"110\"},{\"top\":153.85,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.90\"},{\"top\":153.85,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"2.875\"},{\"top\":153.85,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.02\"},{\"top\":153.85,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":153.85,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":153.85,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":153.85,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":166.21,\"left\":154.69,\"width\":51.26588439941406,\"height\":4.420000076293945,\"text\":\"Datsun 710\"},{\"top\":166.21,\"left\":254.23,\"width\":19.136825561523438,\"height\":4.420000076293945,\"text\":\"22.8\"},{\"top\":166.21,\"left\":291.37,\"width\":6.564239501953125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":166.21,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"108.0\"},{\"top\":166.21,\"left\":347.94,\"width\":11.498016357421875,\"height\":4.420000076293945,\"text\":\"93\"},{\"top\":166.21,\"left\":370.44,\"width\":19.178375244140625,\"height\":4.420000076293945,\"text\":\"3.85\"},{\"top\":166.21,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"2.320\"},{\"top\":166.21,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.61\"},{\"top\":166.21,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":166.21,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":166.21,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":166.21,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":178.56,\"left\":154.69,\"width\":66.93666076660156,\"height\":4.420000076293945,\"text\":\"Hornet 4 Drive\"},{\"top\":178.56,\"left\":254.23,\"width\":19.127243041992188,\"height\":4.420000076293945,\"text\":\"21.4\"},{\"top\":178.56,\"left\":291.37,\"width\":6.561126708984375,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":178.56,\"left\":308.31,\"width\":24.109893798828125,\"height\":4.420000076293945,\"text\":\"258.0\"},{\"top\":178.56,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"110\"},{\"top\":178.56,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.08\"},{\"top\":178.56,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.215\"},{\"top\":178.56,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"19.44\"},{\"top\":178.56,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":178.56,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":178.56,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":178.56,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":190.91,\"left\":154.69,\"width\":84.23333740234375,\"height\":4.420000076293945,\"text\":\"Hornet Sportabout\"},{\"top\":190.91,\"left\":254.23,\"width\":19.122268676757812,\"height\":4.420000076293945,\"text\":\"18.7\"},{\"top\":190.91,\"left\":291.37,\"width\":6.55950927734375,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":190.91,\"left\":308.31,\"width\":24.10986328125,\"height\":4.420000076293945,\"text\":\"360.0\"},{\"top\":190.91,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"175\"},{\"top\":190.91,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.15\"},{\"top\":190.91,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.440\"},{\"top\":190.91,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.02\"},{\"top\":190.91,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":190.91,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":190.91,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":190.91,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":203.27,\"left\":154.69,\"width\":32.67486572265625,\"height\":4.420000076293945,\"text\":\"Valiant\"},{\"top\":203.27,\"left\":254.23,\"width\":19.121109008789062,\"height\":4.420000076293945,\"text\":\"18.1\"},{\"top\":203.27,\"left\":291.37,\"width\":6.559112548828125,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":203.27,\"left\":308.31,\"width\":24.10986328125,\"height\":4.420000076293945,\"text\":\"225.0\"},{\"top\":203.27,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"105\"},{\"top\":203.27,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"2.76\"},{\"top\":203.27,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.460\"},{\"top\":203.27,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"20.22\"},{\"top\":203.27,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":203.27,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":203.27,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":203.27,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":215.62,\"left\":154.69,\"width\":49.03193664550781,\"height\":4.420000076293945,\"text\":\"Duster 360\"},{\"top\":215.62,\"left\":254.23,\"width\":19.135055541992188,\"height\":4.420000076293945,\"text\":\"14.3\"},{\"top\":215.62,\"left\":291.37,\"width\":6.56365966796875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":215.62,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"360.0\"},{\"top\":215.62,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"245\"},{\"top\":215.62,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.21\"},{\"top\":215.62,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.570\"},{\"top\":215.62,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"15.84\"},{\"top\":215.62,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":215.62,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":215.62,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":215.62,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":227.97,\"left\":154.69,\"width\":49.458343505859375,\"height\":4.420000076293945,\"text\":\"Merc 240D\"},{\"top\":227.97,\"left\":254.23,\"width\":19.168106079101562,\"height\":4.420000076293945,\"text\":\"24.4\"},{\"top\":227.97,\"left\":291.37,\"width\":6.57440185546875,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":227.97,\"left\":308.31,\"width\":24.11016845703125,\"height\":4.420000076293945,\"text\":\"146.7\"},{\"top\":227.97,\"left\":347.94,\"width\":11.498046875,\"height\":4.420000076293945,\"text\":\"62\"},{\"top\":227.97,\"left\":370.44,\"width\":19.178375244140625,\"height\":4.420000076293945,\"text\":\"3.69\"},{\"top\":227.97,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"3.190\"},{\"top\":227.97,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"20.00\"},{\"top\":227.97,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":227.97,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":227.97,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":227.97,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":240.33,\"left\":154.69,\"width\":41.658203125,\"height\":4.420000076293945,\"text\":\"Merc 230\"},{\"top\":240.33,\"left\":254.23,\"width\":19.135726928710938,\"height\":4.420000076293945,\"text\":\"22.8\"},{\"top\":240.33,\"left\":291.37,\"width\":6.563873291015625,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":240.33,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"140.8\"},{\"top\":240.33,\"left\":347.94,\"width\":11.498016357421875,\"height\":4.420000076293945,\"text\":\"95\"},{\"top\":240.33,\"left\":370.44,\"width\":19.178375244140625,\"height\":4.420000076293945,\"text\":\"3.92\"},{\"top\":240.33,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"3.150\"},{\"top\":240.33,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"22.90\"},{\"top\":240.33,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":240.33,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":240.33,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":240.33,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":252.68,\"left\":154.69,\"width\":41.658203125,\"height\":4.420000076293945,\"text\":\"Merc 280\"},{\"top\":252.68,\"left\":254.23,\"width\":19.135726928710938,\"height\":4.420000076293945,\"text\":\"19.2\"},{\"top\":252.68,\"left\":291.37,\"width\":6.563873291015625,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":252.68,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"167.6\"},{\"top\":252.68,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"123\"},{\"top\":252.68,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.92\"},{\"top\":252.68,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.440\"},{\"top\":252.68,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.30\"},{\"top\":252.68,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":252.68,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":252.68,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":252.68,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":265.04,\"left\":154.69,\"width\":49.00685119628906,\"height\":4.420000076293945,\"text\":\"Merc 280C\"},{\"top\":265.04,\"left\":254.23,\"width\":19.162887573242188,\"height\":4.420000076293945,\"text\":\"17.8\"},{\"top\":265.04,\"left\":291.37,\"width\":6.57269287109375,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":265.04,\"left\":308.31,\"width\":24.110137939453125,\"height\":4.420000076293945,\"text\":\"167.6\"},{\"top\":265.04,\"left\":342.96,\"width\":16.4560546875,\"height\":4.420000076293945,\"text\":\"123\"},{\"top\":265.04,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.92\"},{\"top\":265.04,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.440\"},{\"top\":265.04,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.90\"},{\"top\":265.04,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":265.04,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":265.04,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":265.04,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":277.39,\"left\":154.69,\"width\":54.12355041503906,\"height\":4.420000076293945,\"text\":\"Merc 450SE\"},{\"top\":277.39,\"left\":254.23,\"width\":19.158493041992188,\"height\":4.420000076293945,\"text\":\"16.4\"},{\"top\":277.39,\"left\":291.37,\"width\":6.571258544921875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":277.39,\"left\":308.31,\"width\":24.110107421875,\"height\":4.420000076293945,\"text\":\"275.8\"},{\"top\":277.39,\"left\":342.96,\"width\":16.4560546875,\"height\":4.420000076293945,\"text\":\"180\"},{\"top\":277.39,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.07\"},{\"top\":277.39,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"4.070\"},{\"top\":277.39,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.40\"},{\"top\":277.39,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":277.39,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":277.39,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":277.39,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"3\"}],[{\"top\":289.74,\"left\":154.69,\"width\":53.53230285644531,\"height\":4.420000076293945,\"text\":\"Merc 450SL\"},{\"top\":289.74,\"left\":254.23,\"width\":19.151657104492188,\"height\":4.420000076293945,\"text\":\"17.3\"},{\"top\":289.74,\"left\":291.37,\"width\":6.569061279296875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":289.74,\"left\":308.31,\"width\":24.11004638671875,\"height\":4.420000076293945,\"text\":\"275.8\"},{\"top\":289.74,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"180\"},{\"top\":289.74,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.07\"},{\"top\":289.74,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.730\"},{\"top\":289.74,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.60\"},{\"top\":289.74,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":289.74,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":289.74,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":289.74,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"3\"}],[{\"top\":302.1,\"left\":154.69,\"width\":60.81890869140625,\"height\":4.420000076293945,\"text\":\"Merc 450SLC\"},{\"top\":302.1,\"left\":254.23,\"width\":19.164993286132812,\"height\":4.420000076293945,\"text\":\"15.2\"},{\"top\":302.1,\"left\":291.37,\"width\":6.573394775390625,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":302.1,\"left\":308.31,\"width\":24.110137939453125,\"height\":4.420000076293945,\"text\":\"275.8\"},{\"top\":302.1,\"left\":342.96,\"width\":16.4560546875,\"height\":4.420000076293945,\"text\":\"180\"},{\"top\":302.1,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.07\"},{\"top\":302.1,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.780\"},{\"top\":302.1,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.00\"},{\"top\":302.1,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":302.1,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":302.1,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":302.1,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"3\"}],[{\"top\":314.45,\"left\":154.69,\"width\":84.98869323730469,\"height\":4.420000076293945,\"text\":\"Cadillac Fleetwood\"},{\"top\":314.45,\"left\":254.23,\"width\":19.142623901367188,\"height\":4.420000076293945,\"text\":\"10.4\"},{\"top\":314.45,\"left\":291.37,\"width\":6.56610107421875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":314.45,\"left\":308.31,\"width\":24.110015869140625,\"height\":4.420000076293945,\"text\":\"472.0\"},{\"top\":314.45,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"205\"},{\"top\":314.45,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"2.93\"},{\"top\":314.45,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"5.250\"},{\"top\":314.45,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.98\"},{\"top\":314.45,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":314.45,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":314.45,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":314.45,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":326.8,\"left\":154.69,\"width\":87.79859924316406,\"height\":4.420000076293945,\"text\":\"Lincoln Continental\"},{\"top\":326.8,\"left\":254.23,\"width\":19.106887817382812,\"height\":4.420000076293945,\"text\":\"10.4\"},{\"top\":326.8,\"left\":291.37,\"width\":6.55450439453125,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":326.8,\"left\":308.31,\"width\":24.109771728515625,\"height\":4.420000076293945,\"text\":\"460.0\"},{\"top\":326.8,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"215\"},{\"top\":326.8,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.00\"},{\"top\":326.8,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"5.424\"},{\"top\":326.8,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.82\"},{\"top\":326.8,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":326.8,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":326.8,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":326.8,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":339.16,\"left\":154.69,\"width\":78.07864379882812,\"height\":4.420000076293945,\"text\":\"Chrysler Imperial\"},{\"top\":339.16,\"left\":254.23,\"width\":19.105667114257812,\"height\":4.420000076293945,\"text\":\"14.7\"},{\"top\":339.16,\"left\":291.37,\"width\":6.554107666015625,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":339.16,\"left\":308.31,\"width\":24.109771728515625,\"height\":4.420000076293945,\"text\":\"440.0\"},{\"top\":339.16,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"230\"},{\"top\":339.16,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.23\"},{\"top\":339.16,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"5.345\"},{\"top\":339.16,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.42\"},{\"top\":339.16,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":339.16,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":339.16,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":339.16,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":351.51,\"left\":154.69,\"width\":37.883056640625,\"height\":4.420000076293945,\"text\":\"Fiat 128\"},{\"top\":351.51,\"left\":254.23,\"width\":19.135086059570312,\"height\":4.420000076293945,\"text\":\"32.4\"},{\"top\":351.51,\"left\":291.37,\"width\":6.56365966796875,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":351.51,\"left\":313.29,\"width\":19.138763427734375,\"height\":4.420000076293945,\"text\":\"78.7\"},{\"top\":351.51,\"left\":347.94,\"width\":11.49945068359375,\"height\":4.420000076293945,\"text\":\"66\"},{\"top\":351.51,\"left\":370.44,\"width\":19.178436279296875,\"height\":4.420000076293945,\"text\":\"4.08\"},{\"top\":351.51,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"2.200\"},{\"top\":351.51,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"19.47\"},{\"top\":351.51,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":351.51,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":351.51,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":351.51,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":363.87,\"left\":154.69,\"width\":55.60911560058594,\"height\":4.420000076293945,\"text\":\"Honda Civic\"},{\"top\":363.87,\"left\":254.23,\"width\":19.124923706054688,\"height\":4.420000076293945,\"text\":\"30.4\"},{\"top\":363.87,\"left\":291.37,\"width\":6.56036376953125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":363.87,\"left\":313.29,\"width\":19.138641357421875,\"height\":4.420000076293945,\"text\":\"75.7\"},{\"top\":363.87,\"left\":347.94,\"width\":11.499420166015625,\"height\":4.420000076293945,\"text\":\"52\"},{\"top\":363.87,\"left\":370.44,\"width\":19.178436279296875,\"height\":4.420000076293945,\"text\":\"4.93\"},{\"top\":363.87,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"1.615\"},{\"top\":363.87,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.52\"},{\"top\":363.87,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":363.87,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":363.87,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":363.87,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":376.22,\"left\":154.69,\"width\":66.14790344238281,\"height\":4.420000076293945,\"text\":\"Toyota Corolla\"},{\"top\":376.22,\"left\":254.23,\"width\":19.130020141601562,\"height\":4.420000076293945,\"text\":\"33.9\"},{\"top\":376.22,\"left\":291.37,\"width\":6.56201171875,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":376.22,\"left\":313.29,\"width\":19.138702392578125,\"height\":4.420000076293945,\"text\":\"71.1\"},{\"top\":376.22,\"left\":347.94,\"width\":11.49945068359375,\"height\":4.420000076293945,\"text\":\"65\"},{\"top\":376.22,\"left\":370.44,\"width\":19.178436279296875,\"height\":4.420000076293945,\"text\":\"4.22\"},{\"top\":376.22,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"1.835\"},{\"top\":376.22,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"19.90\"},{\"top\":376.22,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":376.22,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":376.22,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":376.22,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":388.57,\"left\":154.69,\"width\":66.29142761230469,\"height\":4.420000076293945,\"text\":\"Toyota Corona\"},{\"top\":388.57,\"left\":254.23,\"width\":19.135848999023438,\"height\":4.420000076293945,\"text\":\"21.5\"},{\"top\":388.57,\"left\":291.37,\"width\":6.56390380859375,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":388.57,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"120.1\"},{\"top\":388.57,\"left\":347.94,\"width\":11.498016357421875,\"height\":4.420000076293945,\"text\":\"97\"},{\"top\":388.57,\"left\":370.44,\"width\":19.178375244140625,\"height\":4.420000076293945,\"text\":\"3.70\"},{\"top\":388.57,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"2.465\"},{\"top\":388.57,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"20.01\"},{\"top\":388.57,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":388.57,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":388.57,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":388.57,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":400.93,\"left\":154.69,\"width\":79.03778076171875,\"height\":4.420000076293945,\"text\":\"Dodge Challenger\"},{\"top\":400.93,\"left\":254.23,\"width\":19.120712280273438,\"height\":4.420000076293945,\"text\":\"15.5\"},{\"top\":400.93,\"left\":291.37,\"width\":6.558990478515625,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":400.93,\"left\":308.31,\"width\":24.10986328125,\"height\":4.420000076293945,\"text\":\"318.0\"},{\"top\":400.93,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"150\"},{\"top\":400.93,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"2.76\"},{\"top\":400.93,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.520\"},{\"top\":400.93,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"16.87\"},{\"top\":400.93,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":400.93,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":400.93,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":400.93,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":413.28,\"left\":154.69,\"width\":58.84425354003906,\"height\":4.420000076293945,\"text\":\"AMC Javelin\"},{\"top\":413.28,\"left\":254.23,\"width\":19.137161254882812,\"height\":4.420000076293945,\"text\":\"15.2\"},{\"top\":413.28,\"left\":291.37,\"width\":6.5643310546875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":413.28,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"304.0\"},{\"top\":413.28,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"150\"},{\"top\":413.28,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.15\"},{\"top\":413.28,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.435\"},{\"top\":413.28,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.30\"},{\"top\":413.28,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":413.28,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":413.28,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":413.28,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":425.63,\"left\":154.69,\"width\":55.245391845703125,\"height\":4.420000076293945,\"text\":\"Camaro Z28\"},{\"top\":425.63,\"left\":254.23,\"width\":19.136825561523438,\"height\":4.420000076293945,\"text\":\"13.3\"},{\"top\":425.63,\"left\":291.37,\"width\":6.564239501953125,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":425.63,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"350.0\"},{\"top\":425.63,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"245\"},{\"top\":425.63,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.73\"},{\"top\":425.63,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.840\"},{\"top\":425.63,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"15.41\"},{\"top\":425.63,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":425.63,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":425.63,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":425.63,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":437.99,\"left\":154.69,\"width\":72.91252136230469,\"height\":4.420000076293945,\"text\":\"Pontiac Firebird\"},{\"top\":437.99,\"left\":254.23,\"width\":19.138717651367188,\"height\":4.420000076293945,\"text\":\"19.2\"},{\"top\":437.99,\"left\":291.37,\"width\":6.564849853515625,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":437.99,\"left\":308.31,\"width\":24.1099853515625,\"height\":4.420000076293945,\"text\":\"400.0\"},{\"top\":437.99,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"175\"},{\"top\":437.99,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.08\"},{\"top\":437.99,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.845\"},{\"top\":437.99,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"17.05\"},{\"top\":437.99,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":437.99,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":437.99,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"3\"},{\"top\":437.99,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":450.34,\"left\":154.69,\"width\":43.646453857421875,\"height\":4.420000076293945,\"text\":\"Fiat X1-9\"},{\"top\":450.34,\"left\":254.23,\"width\":19.133193969726562,\"height\":4.420000076293945,\"text\":\"27.3\"},{\"top\":450.34,\"left\":291.37,\"width\":6.56304931640625,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":450.34,\"left\":313.29,\"width\":19.13873291015625,\"height\":4.420000076293945,\"text\":\"79.0\"},{\"top\":450.34,\"left\":347.94,\"width\":11.49945068359375,\"height\":4.420000076293945,\"text\":\"66\"},{\"top\":450.34,\"left\":370.44,\"width\":19.178436279296875,\"height\":4.420000076293945,\"text\":\"4.08\"},{\"top\":450.34,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"1.935\"},{\"top\":450.34,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.90\"},{\"top\":450.34,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":450.34,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":450.34,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":450.34,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"1\"}],[{\"top\":462.69,\"left\":154.69,\"width\":61.43531799316406,\"height\":4.420000076293945,\"text\":\"Porsche 914-2\"},{\"top\":462.69,\"left\":254.23,\"width\":19.132766723632812,\"height\":4.420000076293945,\"text\":\"26.0\"},{\"top\":462.69,\"left\":291.37,\"width\":6.562896728515625,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":462.69,\"left\":308.31,\"width\":24.10992431640625,\"height\":4.420000076293945,\"text\":\"120.3\"},{\"top\":462.69,\"left\":347.94,\"width\":11.498016357421875,\"height\":4.420000076293945,\"text\":\"91\"},{\"top\":462.69,\"left\":370.44,\"width\":19.178375244140625,\"height\":4.420000076293945,\"text\":\"4.43\"},{\"top\":462.69,\"left\":400.1,\"width\":24.169769287109375,\"height\":4.420000076293945,\"text\":\"2.140\"},{\"top\":462.69,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"16.70\"},{\"top\":462.69,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":462.69,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":462.69,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"5\"},{\"top\":462.69,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":475.05,\"left\":154.69,\"width\":61.090576171875,\"height\":4.420000076293945,\"text\":\"Lotus Europa\"},{\"top\":475.05,\"left\":254.23,\"width\":19.135818481445312,\"height\":4.420000076293945,\"text\":\"30.4\"},{\"top\":475.05,\"left\":291.37,\"width\":6.56390380859375,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":475.05,\"left\":313.29,\"width\":19.138763427734375,\"height\":4.420000076293945,\"text\":\"95.1\"},{\"top\":475.05,\"left\":342.96,\"width\":16.456756591796875,\"height\":4.420000076293945,\"text\":\"113\"},{\"top\":475.05,\"left\":370.44,\"width\":19.177520751953125,\"height\":4.420000076293945,\"text\":\"3.77\"},{\"top\":475.05,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"1.513\"},{\"top\":475.05,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"16.90\"},{\"top\":475.05,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":475.05,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":475.05,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"5\"},{\"top\":475.05,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}],[{\"top\":487.4,\"left\":154.69,\"width\":68.54920959472656,\"height\":4.420000076293945,\"text\":\"Ford Pantera L\"},{\"top\":487.4,\"left\":254.23,\"width\":19.153152465820312,\"height\":4.420000076293945,\"text\":\"15.8\"},{\"top\":487.4,\"left\":291.37,\"width\":6.569549560546875,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":487.4,\"left\":308.31,\"width\":24.110076904296875,\"height\":4.420000076293945,\"text\":\"351.0\"},{\"top\":487.4,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"264\"},{\"top\":487.4,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"4.22\"},{\"top\":487.4,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.170\"},{\"top\":487.4,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"14.50\"},{\"top\":487.4,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":487.4,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":487.4,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"5\"},{\"top\":487.4,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"4\"}],[{\"top\":499.76,\"left\":154.69,\"width\":55.24394226074219,\"height\":4.420000076293945,\"text\":\"Ferrari Dino\"},{\"top\":499.76,\"left\":254.23,\"width\":19.134323120117188,\"height\":4.420000076293945,\"text\":\"19.7\"},{\"top\":499.76,\"left\":291.37,\"width\":6.56341552734375,\"height\":4.420000076293945,\"text\":\"6\"},{\"top\":499.76,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"145.0\"},{\"top\":499.76,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"175\"},{\"top\":499.76,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.62\"},{\"top\":499.76,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"2.770\"},{\"top\":499.76,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"15.50\"},{\"top\":499.76,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":499.76,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":499.76,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"5\"},{\"top\":499.76,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"6\"}],[{\"top\":512.11,\"left\":154.69,\"width\":63.6805419921875,\"height\":4.420000076293945,\"text\":\"Maserati Bora\"},{\"top\":512.11,\"left\":254.23,\"width\":19.133377075195312,\"height\":4.420000076293945,\"text\":\"15.0\"},{\"top\":512.11,\"left\":291.37,\"width\":6.5631103515625,\"height\":4.420000076293945,\"text\":\"8\"},{\"top\":512.11,\"left\":308.31,\"width\":24.109954833984375,\"height\":4.420000076293945,\"text\":\"301.0\"},{\"top\":512.11,\"left\":342.96,\"width\":16.456024169921875,\"height\":4.420000076293945,\"text\":\"335\"},{\"top\":512.11,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"3.54\"},{\"top\":512.11,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"3.570\"},{\"top\":512.11,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"14.60\"},{\"top\":512.11,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"0\"},{\"top\":512.11,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":512.11,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"5\"},{\"top\":512.11,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"8\"}],[{\"top\":524.46,\"left\":154.69,\"width\":51.04241943359375,\"height\":4.420000076293945,\"text\":\"Volvo 142E\"},{\"top\":524.46,\"left\":254.23,\"width\":19.158035278320312,\"height\":4.420000076293945,\"text\":\"21.4\"},{\"top\":524.46,\"left\":291.37,\"width\":6.571136474609375,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":524.46,\"left\":308.31,\"width\":24.110107421875,\"height\":4.420000076293945,\"text\":\"121.0\"},{\"top\":524.46,\"left\":342.96,\"width\":16.4560546875,\"height\":4.420000076293945,\"text\":\"109\"},{\"top\":524.46,\"left\":370.44,\"width\":19.177490234375,\"height\":4.420000076293945,\"text\":\"4.11\"},{\"top\":524.46,\"left\":400.1,\"width\":24.16973876953125,\"height\":4.420000076293945,\"text\":\"2.780\"},{\"top\":524.46,\"left\":434.75,\"width\":24.1492919921875,\"height\":4.420000076293945,\"text\":\"18.60\"},{\"top\":524.46,\"left\":473.61,\"width\":6.57476806640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":524.46,\"left\":498.85,\"width\":6.618804931640625,\"height\":4.420000076293945,\"text\":\"1\"},{\"top\":524.46,\"left\":529.09,\"width\":6.63311767578125,\"height\":4.420000076293945,\"text\":\"4\"},{\"top\":524.46,\"left\":559.89,\"width\":4.980000019073486,\"height\":4.420000076293945,\"text\":\"2\"}]]}]" ] } ], "source": [ "# You can convert from pdf into JSON, CSV, TSV\n", "\n", "tabula.convert_into(pdf_path, \"test.json\", output_format=\"json\", stream=True)\n", "!cat test.json" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 701 }, "colab_type": "code", "id": "RASBy7Y5luSf", "outputId": "0c27def2-8832-4b97-c49d-22c65896d79f" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\"\"\tmpg\tcyl\tdisp\thp\tdrat\twt\tqsec\tvs\tam\tgear\tcarb\n", "Mazda RX4\t21.0\t6\t160.0\t110\t3.90\t2.620\t16.46\t0\t1\t4\t4\n", "Mazda RX4 Wag\t21.0\t6\t160.0\t110\t3.90\t2.875\t17.02\t0\t1\t4\t4\n", "Datsun 710\t22.8\t4\t108.0\t93\t3.85\t2.320\t18.61\t1\t1\t4\t1\n", "Hornet 4 Drive\t21.4\t6\t258.0\t110\t3.08\t3.215\t19.44\t1\t0\t3\t1\n", "Hornet Sportabout\t18.7\t8\t360.0\t175\t3.15\t3.440\t17.02\t0\t0\t3\t2\n", "Valiant\t18.1\t6\t225.0\t105\t2.76\t3.460\t20.22\t1\t0\t3\t1\n", "Duster 360\t14.3\t8\t360.0\t245\t3.21\t3.570\t15.84\t0\t0\t3\t4\n", "Merc 240D\t24.4\t4\t146.7\t62\t3.69\t3.190\t20.00\t1\t0\t4\t2\n", "Merc 230\t22.8\t4\t140.8\t95\t3.92\t3.150\t22.90\t1\t0\t4\t2\n", "Merc 280\t19.2\t6\t167.6\t123\t3.92\t3.440\t18.30\t1\t0\t4\t4\n", "Merc 280C\t17.8\t6\t167.6\t123\t3.92\t3.440\t18.90\t1\t0\t4\t4\n", "Merc 450SE\t16.4\t8\t275.8\t180\t3.07\t4.070\t17.40\t0\t0\t3\t3\n", "Merc 450SL\t17.3\t8\t275.8\t180\t3.07\t3.730\t17.60\t0\t0\t3\t3\n", "Merc 450SLC\t15.2\t8\t275.8\t180\t3.07\t3.780\t18.00\t0\t0\t3\t3\n", "Cadillac Fleetwood\t10.4\t8\t472.0\t205\t2.93\t5.250\t17.98\t0\t0\t3\t4\n", "Lincoln Continental\t10.4\t8\t460.0\t215\t3.00\t5.424\t17.82\t0\t0\t3\t4\n", "Chrysler Imperial\t14.7\t8\t440.0\t230\t3.23\t5.345\t17.42\t0\t0\t3\t4\n", "Fiat 128\t32.4\t4\t78.7\t66\t4.08\t2.200\t19.47\t1\t1\t4\t1\n", "Honda Civic\t30.4\t4\t75.7\t52\t4.93\t1.615\t18.52\t1\t1\t4\t2\n", "Toyota Corolla\t33.9\t4\t71.1\t65\t4.22\t1.835\t19.90\t1\t1\t4\t1\n", "Toyota Corona\t21.5\t4\t120.1\t97\t3.70\t2.465\t20.01\t1\t0\t3\t1\n", "Dodge Challenger\t15.5\t8\t318.0\t150\t2.76\t3.520\t16.87\t0\t0\t3\t2\n", "AMC Javelin\t15.2\t8\t304.0\t150\t3.15\t3.435\t17.30\t0\t0\t3\t2\n", "Camaro Z28\t13.3\t8\t350.0\t245\t3.73\t3.840\t15.41\t0\t0\t3\t4\n", "Pontiac Firebird\t19.2\t8\t400.0\t175\t3.08\t3.845\t17.05\t0\t0\t3\t2\n", "Fiat X1-9\t27.3\t4\t79.0\t66\t4.08\t1.935\t18.90\t1\t1\t4\t1\n", "Porsche 914-2\t26.0\t4\t120.3\t91\t4.43\t2.140\t16.70\t0\t1\t5\t2\n", "Lotus Europa\t30.4\t4\t95.1\t113\t3.77\t1.513\t16.90\t1\t1\t5\t2\n", "Ford Pantera L\t15.8\t8\t351.0\t264\t4.22\t3.170\t14.50\t0\t1\t5\t4\n", "Ferrari Dino\t19.7\t6\t145.0\t175\t3.62\t2.770\t15.50\t0\t1\t5\t6\n", "Maserati Bora\t15.0\t8\t301.0\t335\t3.54\t3.570\t14.60\t0\t1\t5\t8\n", "Volvo 142E\t21.4\t4\t121.0\t109\t4.11\t2.780\t18.60\t1\t1\t4\t2\n" ] } ], "source": [ "tabula.convert_into(pdf_path, \"test.tsv\", output_format=\"tsv\", stream=True)\n", "!cat test.tsv" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 719 }, "colab_type": "code", "id": "9WPnL5QwluSo", "outputId": "ffb94f43-18a4-489c-b786-3bc2177de0ae" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\"\",mpg,cyl,disp,hp,drat,wt,qsec,vs,am,gear,carb\n", "Mazda RX4,21.0,6,160.0,110,3.90,2.620,16.46,0,1,4,4\n", "Mazda RX4 Wag,21.0,6,160.0,110,3.90,2.875,17.02,0,1,4,4\n", "Datsun 710,22.8,4,108.0,93,3.85,2.320,18.61,1,1,4,1\n", "Hornet 4 Drive,21.4,6,258.0,110,3.08,3.215,19.44,1,0,3,1\n", "Hornet Sportabout,18.7,8,360.0,175,3.15,3.440,17.02,0,0,3,2\n", "Valiant,18.1,6,225.0,105,2.76,3.460,20.22,1,0,3,1\n", "Duster 360,14.3,8,360.0,245,3.21,3.570,15.84,0,0,3,4\n", "Merc 240D,24.4,4,146.7,62,3.69,3.190,20.00,1,0,4,2\n", "Merc 230,22.8,4,140.8,95,3.92,3.150,22.90,1,0,4,2\n", "Merc 280,19.2,6,167.6,123,3.92,3.440,18.30,1,0,4,4\n", "Merc 280C,17.8,6,167.6,123,3.92,3.440,18.90,1,0,4,4\n", "Merc 450SE,16.4,8,275.8,180,3.07,4.070,17.40,0,0,3,3\n", "Merc 450SL,17.3,8,275.8,180,3.07,3.730,17.60,0,0,3,3\n", "Merc 450SLC,15.2,8,275.8,180,3.07,3.780,18.00,0,0,3,3\n", "Cadillac Fleetwood,10.4,8,472.0,205,2.93,5.250,17.98,0,0,3,4\n", "Lincoln Continental,10.4,8,460.0,215,3.00,5.424,17.82,0,0,3,4\n", "Chrysler Imperial,14.7,8,440.0,230,3.23,5.345,17.42,0,0,3,4\n", "Fiat 128,32.4,4,78.7,66,4.08,2.200,19.47,1,1,4,1\n", "Honda Civic,30.4,4,75.7,52,4.93,1.615,18.52,1,1,4,2\n", "Toyota Corolla,33.9,4,71.1,65,4.22,1.835,19.90,1,1,4,1\n", "Toyota Corona,21.5,4,120.1,97,3.70,2.465,20.01,1,0,3,1\n", "Dodge Challenger,15.5,8,318.0,150,2.76,3.520,16.87,0,0,3,2\n", "AMC Javelin,15.2,8,304.0,150,3.15,3.435,17.30,0,0,3,2\n", "Camaro Z28,13.3,8,350.0,245,3.73,3.840,15.41,0,0,3,4\n", "Pontiac Firebird,19.2,8,400.0,175,3.08,3.845,17.05,0,0,3,2\n", "Fiat X1-9,27.3,4,79.0,66,4.08,1.935,18.90,1,1,4,1\n", "Porsche 914-2,26.0,4,120.3,91,4.43,2.140,16.70,0,1,5,2\n", "Lotus Europa,30.4,4,95.1,113,3.77,1.513,16.90,1,1,5,2\n", "Ford Pantera L,15.8,8,351.0,264,4.22,3.170,14.50,0,1,5,4\n", "Ferrari Dino,19.7,6,145.0,175,3.62,2.770,15.50,0,1,5,6\n", "Maserati Bora,15.0,8,301.0,335,3.54,3.570,14.60,0,1,5,8\n", "Volvo 142E,21.4,4,121.0,109,4.11,2.780,18.60,1,1,4,2\n" ] } ], "source": [ "tabula.convert_into(pdf_path, \"test.csv\", output_format=\"csv\", stream=True)\n", "!cat test.csv" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "W8HrDTruu-mb" }, "source": [ "## Use lattice mode for more accurate extraction for spreadsheet style tables\n", "\n", "If your tables have lines separating cells, you can use `lattice` option. By default, tabula-py sets `guess=True`, which is the same behavior for default of tabula app. If your tables don't have separation lines, you can try `stream` option.\n", "\n", "As it mentioned, try tabula app before struglling with tabula-py option. Or, [PDFplumber](https://github.com/jsvine/pdfplumber) can be an alternative since it has different extraction strategy." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 669 }, "colab_type": "code", "id": "_g4_QK0SnfV4", "outputId": "f1a66bc7-c90e-470c-d62a-a3d4a35bfaf1" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Improved operation scenarioUnnamed: 1_level_0Unnamed: 2_level_0Unnamed: 3_level_0Unnamed: 4_level_0Unnamed: 5_level_0
Volume servers in:20072008200920102011
0Server closets1,5051,5801,6431,6731,689
1Server rooms1,5121,5861,6461,6771,693
2Localized data centers1,5121,5861,6461,6771,693
3Mid-tier data centers1,5121,5861,6461,6771,693
4Enterprise-class data centers1,5121,5861,6461,6771,693
5Best practice scenarioNaNNaNNaNNaNNaN
6Volume servers in:20072008200920102011
7Server closets1,4561,4391,3861,2961,326
8Server rooms1,4651,4721,4271,3341,371
9Localized data centers1,4651,4711,4261,3341,371
10Mid-tier data centers1,4651,4711,4261,3341,371
11Enterprise-class data centers1,4651,4711,4261,3341,371
12State-of-the-art scenarioNaNNaNNaNNaNNaN
13Volume servers in:20072008200920102011
14Server closets1,4851,4711,4241,3151,349
15Server rooms1,4951,5731,5861,4241,485
16Localized data centers1,4951,5721,5851,4241,485
17Mid-tier data centers1,4951,5721,5851,4241,485
18Enterprise-class data centers1,4951,5721,5851,4241,485
\n", "
" ], "text/plain": [ " Improved operation scenario Unnamed: 1_level_0 Unnamed: 2_level_0 \\\n", " Volume servers in: 2007 2008 \n", "0 Server closets 1,505 1,580 \n", "1 Server rooms 1,512 1,586 \n", "2 Localized data centers 1,512 1,586 \n", "3 Mid-tier data centers 1,512 1,586 \n", "4 Enterprise-class data centers 1,512 1,586 \n", "5 Best practice scenario NaN NaN \n", "6 Volume servers in: 2007 2008 \n", "7 Server closets 1,456 1,439 \n", "8 Server rooms 1,465 1,472 \n", "9 Localized data centers 1,465 1,471 \n", "10 Mid-tier data centers 1,465 1,471 \n", "11 Enterprise-class data centers 1,465 1,471 \n", "12 State-of-the-art scenario NaN NaN \n", "13 Volume servers in: 2007 2008 \n", "14 Server closets 1,485 1,471 \n", "15 Server rooms 1,495 1,573 \n", "16 Localized data centers 1,495 1,572 \n", "17 Mid-tier data centers 1,495 1,572 \n", "18 Enterprise-class data centers 1,495 1,572 \n", "\n", " Unnamed: 3_level_0 Unnamed: 4_level_0 Unnamed: 5_level_0 \n", " 2009 2010 2011 \n", "0 1,643 1,673 1,689 \n", "1 1,646 1,677 1,693 \n", "2 1,646 1,677 1,693 \n", "3 1,646 1,677 1,693 \n", "4 1,646 1,677 1,693 \n", "5 NaN NaN NaN \n", "6 2009 2010 2011 \n", "7 1,386 1,296 1,326 \n", "8 1,427 1,334 1,371 \n", "9 1,426 1,334 1,371 \n", "10 1,426 1,334 1,371 \n", "11 1,426 1,334 1,371 \n", "12 NaN NaN NaN \n", "13 2009 2010 2011 \n", "14 1,424 1,315 1,349 \n", "15 1,586 1,424 1,485 \n", "16 1,585 1,424 1,485 \n", "17 1,585 1,424 1,485 \n", "18 1,585 1,424 1,485 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdf_path3 = \"https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/spanning_cells.pdf\"\n", "dfs = tabula.read_pdf(\n", " pdf_path3,\n", " pages=\"1\",\n", " lattice=True,\n", " pandas_options={\"header\": [0, 1]},\n", " area=[0, 0, 50, 100],\n", " relative_area=True,\n", " multiple_tables=False,\n", ")\n", "dfs[0]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "RGW2EtKkwXl6" }, "source": [ "## Use tabula app template\n", "\n", "tabula-py can handle tabula app template, which has area options set by GUI app to reuse." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "IVcltBwUvcAc", "outputId": "5e6e2778-4eea-49af-97b2-540b7e3394d1" }, "outputs": [ { "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp drat wt qsec vs am \\\n", " 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 \n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 \n", " 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 \n", " 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 \n", " 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 \n", " 5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 \n", " 6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 \n", " 7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 \n", " 8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 \n", " 9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 \n", " 10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 \n", " 11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 \n", " 12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 \n", " 13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 \n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 \n", " 15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 \n", " 16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 \n", " 17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 \n", " 18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 \n", " 19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 \n", " 20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 \n", " 21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 \n", " 22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 \n", " 23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 \n", " 24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 \n", " 25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 \n", " 26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 \n", " 27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 \n", " 28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 \n", " 29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 \n", " 30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 \n", " 31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 \n", " \n", " gear carb \n", " 0 4 4 \n", " 1 4 4 \n", " 2 4 1 \n", " 3 3 1 \n", " 4 3 2 \n", " 5 3 1 \n", " 6 3 4 \n", " 7 4 2 \n", " 8 4 2 \n", " 9 4 4 \n", " 10 4 4 \n", " 11 3 3 \n", " 12 3 3 \n", " 13 3 3 \n", " 14 3 4 \n", " 15 3 4 \n", " 16 3 4 \n", " 17 4 1 \n", " 18 4 2 \n", " 19 4 1 \n", " 20 3 1 \n", " 21 3 2 \n", " 22 3 2 \n", " 23 3 4 \n", " 24 3 2 \n", " 25 4 1 \n", " 26 5 2 \n", " 27 5 2 \n", " 28 5 4 \n", " 29 5 6 \n", " 30 5 8 \n", " 31 4 2 ,\n", " Unnamed: 0 Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica,\n", " Unnamed: 0 supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "template_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.tabula-template.json\"\n", "tabula.read_pdf_with_template(pdf_path, template_path)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "i0Jxoh9ZSRyv" }, "source": [ "If you have any question, ask on [StackOverflow](https://stackoverflow.com/search?q=tabula-py)." ] } ], "metadata": { "colab": { "include_colab_link": true, "name": "tabula_example.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 0 }