{ "info": { "author": "Marek Cermak", "author_email": "macermak@redhat.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Framework :: IPython", "Framework :: Jupyter", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: JavaScript", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Utilities" ], "description": "# Jupyter DataTables\n\nJupyter Notebook extension to levarage pandas DataFrames by integrating DataTables JS.\n\n\n
\n\n#### About\n\nData scientists and in fact many developers work with `pd.DataFrame` on daily basis to interpret data to process them. In my typical workflow. The common workflow is to display the dataframe, take a look at the data schema and then produce multiple plots to check the distribution of the data to have a clearer picture, perhaps search some data in the table, etc...\n\nWhat if those distribution plots were part of the standard DataFrame and we had the ability to quickly search through the table with minimal effort? What if it was the default representation?\n\nThe jupyter-datatables uses [jupyter-require](https://github.com/CermakM/jupyter-require) to draw the table.\n\n
\n\n#### Installation\n\n```bash\npip install jupyter-datatables\n```\n\nAnd enable the required extensions\n\n```bash\njupyter nbextension install --sys-prefix --py jupyter_require\njupyter nbextension enable jupyter-require/extension\n```\n\n
\n\n#### Usage\n\n```python\nimport numpy as np\nimport pandas as pd\n\nfrom jupyter_datatables import init_datatables_mode\n\ninit_datatables_mode()\n```\n\nThat's it, your default pandas representation will now use Jupyter DataTables!\n\n```python\ndf = pd.DataFrame(np.abs(np.random.randn(50, 5)), columns=list(string.ascii_uppercase[:5]))\n```\n\n![Jupyter Datatables table representation](https://raw.github.com/CermakM/jupyter-datatables/master/assets/images/jupyter-datatables.png)\n\n
\n\nIn most cases, you don't need to worry too much about the size of your data. Jupyter DataTables **calculates required sample size** based on a confidence interval (by default this would be `0.95`) and margin of error and ceils it to the highest 'smart' value.\n\nFor example, for a data containing `100,000` samples, given `0.975` confidence interval and `0.02` margin of error, the Jupyter DataTables would calculate that `3044` samples are required and it would round it up to `4000`.\n\n![Jupyter Datatables long table sample size](https://raw.github.com/CermakM/jupyter-datatables/master/assets/images/jupyter-datatables-long.png)\n\nWith additional note:\n\n> Sample size: 4,000 out of 100,000\n\n
\n\nWe can also handle wide tables with ease.\n\n```python\ndf = pd.DataFrame(np.abs(np.random.randn(50, 20)), columns=list(string.ascii_uppercase[:20]))\n```\n\n![Jupyter Datatables wide table representation](https://raw.github.com/CermakM/jupyter-datatables/master/assets/images/jupyter-datatables-wide.gif)\n\n
\n\nAs per 0.3.0, there is a support for **interactive tooltips**:\n\n![Jupyter Datatables wide table representation](https://raw.github.com/CermakM/jupyter-datatables/master/assets/images/jupyter-datatables-tooltips.gif)\n\n\nAnd also support for custom indices including `Date` type:\n\n```python\ndft = pd.DataFrame({'A': np.random.rand(5),\n 'B': [1, 1, 3, 2, 1],\n 'C': 'This is a very long sentence that should automatically be trimmed',\n 'D': [pd.Timestamp('20010101'), pd.Timestamp('20010102'), pd.Timestamp('20010103'), pd.Timestamp('20010104'), pd.Timestamp('20010105')],\n 'E': pd.Series([1.0] * 5).astype('float32'),\n 'F': [False, True, False, False, True],\n })\n\ndft.D = dft.D.apply(pd.to_datetime)\ndft.set_index('D', inplace=True)\n```\n\n![Jupyter Datatables wide table representation](https://raw.github.com/CermakM/jupyter-datatables/master/assets/images/jupyter-datatables-datetime-tooltips.gif)\n\n---\n\n
\n\n#### Current status and future plans:\n\nCheck out the [Project Board](https://github.com/users/CermakM/projects/1) where we track issues and TODOs for our Jupyter tooling!\n\n---\n\n> Author: Marek Cermak , @AICoE\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CermakM/jupyter-datatables", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "jupyter-datatables", "package_url": "https://pypi.org/project/jupyter-datatables/", "platform": "", "project_url": "https://pypi.org/project/jupyter-datatables/", "project_urls": { "Homepage": "https://github.com/CermakM/jupyter-datatables" }, "release_url": "https://pypi.org/project/jupyter-datatables/0.3.8/", "requires_dist": [ "ipython", "ipykernel", "pandas (>=0.23.0)", "scipy", "jupyter-require (>=0.3.0)" ], "requires_python": ">=3.6", "summary": "Jupyter Notebook extension to levarage pandas DataFrames by integrating DataTables JS.", "version": "0.3.8" }, "last_serial": 5894494, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5cdd54a48ead0a41f20781398eadf71c", "sha256": "b33b443a51d4df0300ecdb1cb1aef8aaf0d67106d92d874d69e6b938721e04d1" }, "downloads": -1, "filename": "jupyter_datatables-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5cdd54a48ead0a41f20781398eadf71c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9228, "upload_time": "2019-04-11T09:06:14", "url": "https://files.pythonhosted.org/packages/b4/d9/9edd2805ebe251163076e85e1b38d88d6f0f33e505be2a50cbc0a35c78f4/jupyter_datatables-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "486ac9cdbfaa6742979b485a8b548209", "sha256": "de40e38bc364b53a16a03e0439ae9a094c77648de2c02e5c8714a5ca1ff1ee66" }, "downloads": -1, "filename": "jupyter-datatables-0.1.0.tar.gz", "has_sig": false, "md5_digest": "486ac9cdbfaa6742979b485a8b548209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1092824, "upload_time": "2019-04-11T09:06:17", "url": "https://files.pythonhosted.org/packages/47/87/2f9268794c06d781ae963a8544fd8da3422837fd46b8cc99b8e077cd0635/jupyter-datatables-0.1.0.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "82733a5364f2e4d5bd86e797cef7f0f9", "sha256": "8f455fb5d650b11312fcbb6268a4ffcc9d64c256ce43b29a07dc1370d3bbf833" }, "downloads": -1, "filename": "jupyter_datatables-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "82733a5364f2e4d5bd86e797cef7f0f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8266, "upload_time": "2019-04-18T10:31:42", "url": "https://files.pythonhosted.org/packages/5d/46/6933d52fd5443c97424f5e5d9bcb72375145e551a61d1ffdc46c0661d144/jupyter_datatables-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47a7eaf12ab98883cd18f8b4b1d53992", "sha256": "6937a13eade5a129c25c52773d5db0c5e5c2c24bb7fb9248cc9b2df2af9cad98" }, "downloads": -1, "filename": "jupyter-datatables-0.1.3.tar.gz", "has_sig": false, "md5_digest": "47a7eaf12ab98883cd18f8b4b1d53992", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 503508, "upload_time": "2019-04-18T10:31:44", "url": "https://files.pythonhosted.org/packages/11/ea/dd106c9a712db2b350a3a11bd1f8b3b3eb513fc67da5726674af6e5398cb/jupyter-datatables-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "22413df42a68b37be70c8bfdc9e7ebe6", "sha256": "65696f7a46246e14b8d959105f40240a1063cbf146032d70571f746d03797b76" }, "downloads": -1, "filename": "jupyter_datatables-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "22413df42a68b37be70c8bfdc9e7ebe6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12641, "upload_time": "2019-04-24T22:39:08", "url": "https://files.pythonhosted.org/packages/7d/a4/f4b46cce6aa21a61304e99e534057a49ee26f4795df1c7b72a0e773b50fc/jupyter_datatables-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "507e05e56fbd107599b97361309159bd", "sha256": "76a261fcde85b26b56c37f47357401b20f61c4ba9da60e1e35e82cae3f8035d7" }, "downloads": -1, "filename": "jupyter-datatables-0.2.0.tar.gz", "has_sig": false, "md5_digest": "507e05e56fbd107599b97361309159bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3790275, "upload_time": "2019-04-24T22:39:13", "url": "https://files.pythonhosted.org/packages/8e/2d/e01d39f8b9ee06e78fed23c083a0fb289a87a8f57105be781327fa2cb23c/jupyter-datatables-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "4beecf9cf4e6f86d916440c7302863d8", "sha256": "69aa160f7d37e5c98a559b434f432bda19a5c5bb18002b44822270fd95391e62" }, "downloads": -1, "filename": "jupyter_datatables-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4beecf9cf4e6f86d916440c7302863d8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12641, "upload_time": "2019-05-03T11:20:07", "url": "https://files.pythonhosted.org/packages/64/f9/9194ce0504051ca4d07ec3cc9d086ef78a197c5998159472686c144d2d8d/jupyter_datatables-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a45b8d77306f9f6bf1b2e6bb4245193", "sha256": "a7515a6f605e84a6f0075d095abf771da7466d76c532688a9cc1d28a3fde8a45" }, "downloads": -1, "filename": "jupyter-datatables-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1a45b8d77306f9f6bf1b2e6bb4245193", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3845780, "upload_time": "2019-05-03T11:20:09", "url": "https://files.pythonhosted.org/packages/fb/c4/ca27b447f31f332f3c5100afc99a6db0d600556e24fe2553669fad3d6386/jupyter-datatables-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "02c82aba5542becd3240c7888fc8fea2", "sha256": "8f161d2ef34f12ee702eca6b43c6e345dec11c2d957c0668d0794863c8570eb2" }, "downloads": -1, "filename": "jupyter_datatables-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02c82aba5542becd3240c7888fc8fea2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12989, "upload_time": "2019-05-14T08:02:26", "url": "https://files.pythonhosted.org/packages/a9/20/cea1c1cecdda99c042d312d73f1b9ce152b2e3e457681bf5b651b5fca323/jupyter_datatables-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdb346d624b1f4d2cb49d39f729632e7", "sha256": "2b0abcb7fbf8f5a7408e7759a51a6e09505108a8a37da570561eaa8c01eaed71" }, "downloads": -1, "filename": "jupyter-datatables-0.2.2.tar.gz", "has_sig": false, "md5_digest": "bdb346d624b1f4d2cb49d39f729632e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3846120, "upload_time": "2019-05-14T08:02:33", "url": "https://files.pythonhosted.org/packages/76/8b/c3513c088e618f48e141c6dd2937cc20afdeccdb32d15766df4be22416a2/jupyter-datatables-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "af5b2f266784677e486e52d47d69a871", "sha256": "0a030dd231d2ac85785932332289c0f36b30db950b292758c0ea4356411f39b3" }, "downloads": -1, "filename": "jupyter_datatables-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af5b2f266784677e486e52d47d69a871", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15866, "upload_time": "2019-07-19T15:33:47", "url": "https://files.pythonhosted.org/packages/12/01/b1bfa8c3a957c784cf59a9b293f7f0258a26ede906971e551e8d9a517545/jupyter_datatables-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9854b638dc773c9f56b648ed381e5850", "sha256": "9baa8da2c914db2f932e53ea50ca021d3781af849cb2f17e22183a2224d6d8e8" }, "downloads": -1, "filename": "jupyter-datatables-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9854b638dc773c9f56b648ed381e5850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6287271, "upload_time": "2019-07-19T15:34:01", "url": "https://files.pythonhosted.org/packages/9a/af/be5c22dba6dadf65ea95ad552587ceb729717fdc7ee9364211c733a0b011/jupyter-datatables-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b18e7280e30cc77996c132eb4663585f", "sha256": "6dd969a61def665679d80fbec4b6b30200f2b55d816e747687fd5e17ea058cf6" }, "downloads": -1, "filename": "jupyter_datatables-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b18e7280e30cc77996c132eb4663585f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15874, "upload_time": "2019-07-23T10:14:06", "url": "https://files.pythonhosted.org/packages/96/6c/38a7f6169e9e05cf09dfdd345ca089dd8641c22f11687cdd59eeb21a439c/jupyter_datatables-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddaf61da08556bd8fb5c2d2a6de55a88", "sha256": "5a47316bdca0922556ea110b6605cfc58a642e306782eab32dac7df5dd283e49" }, "downloads": -1, "filename": "jupyter-datatables-0.3.1.tar.gz", "has_sig": false, "md5_digest": "ddaf61da08556bd8fb5c2d2a6de55a88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6287288, "upload_time": "2019-07-23T10:14:10", "url": "https://files.pythonhosted.org/packages/cc/1c/44712e063b2b312b1610f7966a0fdaabc876d22388372b5cba2d2f4933bf/jupyter-datatables-0.3.1.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "edf9daf559de460acfb36dbd16dd8033", "sha256": "c0a0db91ddb7c355aa21984775c73cecdfc1be5b2c59613fe7369e2f1f17dd8b" }, "downloads": -1, "filename": "jupyter_datatables-0.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edf9daf559de460acfb36dbd16dd8033", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 21420, "upload_time": "2019-09-27T06:57:04", "url": "https://files.pythonhosted.org/packages/08/a4/078ab43ab7d3d11ed0b01a83a05d13ce9f295630c3d892fd47d2823fed9b/jupyter_datatables-0.3.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c78cc68371bc6ef69f44cf6bee32cb57", "sha256": "f73149ea9f3a79dd8d8939c409ee4a680a09e769dbbd26ff48e8b92273751335" }, "downloads": -1, "filename": "jupyter-datatables-0.3.8.tar.gz", "has_sig": false, "md5_digest": "c78cc68371bc6ef69f44cf6bee32cb57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6525781, "upload_time": "2019-09-27T06:57:07", "url": "https://files.pythonhosted.org/packages/07/2f/51f4e8da4bd52905c85c334ca079b7f6e17a6a50ec0e822fa9d9995567a8/jupyter-datatables-0.3.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "edf9daf559de460acfb36dbd16dd8033", "sha256": "c0a0db91ddb7c355aa21984775c73cecdfc1be5b2c59613fe7369e2f1f17dd8b" }, "downloads": -1, "filename": "jupyter_datatables-0.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edf9daf559de460acfb36dbd16dd8033", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 21420, "upload_time": "2019-09-27T06:57:04", "url": "https://files.pythonhosted.org/packages/08/a4/078ab43ab7d3d11ed0b01a83a05d13ce9f295630c3d892fd47d2823fed9b/jupyter_datatables-0.3.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c78cc68371bc6ef69f44cf6bee32cb57", "sha256": "f73149ea9f3a79dd8d8939c409ee4a680a09e769dbbd26ff48e8b92273751335" }, "downloads": -1, "filename": "jupyter-datatables-0.3.8.tar.gz", "has_sig": false, "md5_digest": "c78cc68371bc6ef69f44cf6bee32cb57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6525781, "upload_time": "2019-09-27T06:57:07", "url": "https://files.pythonhosted.org/packages/07/2f/51f4e8da4bd52905c85c334ca079b7f6e17a6a50ec0e822fa9d9995567a8/jupyter-datatables-0.3.8.tar.gz" } ] }