{ "info": { "author": "Zach Sailer", "author_email": "zachsailer@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n# Pandas Flavor\n**The easy way to write your own flavor of Pandas**\n\nPandas added an new (simple) API to register accessors with Pandas objects.\nThis package does two things:\n1. adds support for registering methods as well.\n2. makes each of these functions backwards compatible with older versions of Pandas.\n\n***What does this mean?***\n\nIt is now simpler to add custom functionality to Pandas DataFrames and Series.\n\nImport this package. Write a simple python function. Register the function using one of the following decorators.\n\n***Why?***\n\nPandas is super handy. Its general purpose is to be a \"flexible and powerful data analysis/manipulation library\".\n\n**Pandas Flavor** allows you add functionality that tailors Pandas to specific fields or use cases.\n\nMaybe you want to add new write methods to the Pandas DataFrame? Maybe you want custom plot functionality? Maybe something else?\n\n## Register accessors\n\nAccessors (in pandas) are objects attached to a attribute on the Pandas DataFrame/Series\nthat provide extra, specific functionality. For example, `pandas.DataFrame.plot` is an\naccessor that provides plotting functionality.\n\nAdd an accessor by registering the function with the following decorator\nand passing the decorator an accessor name.\n\n```python\nimport pandas as pd\nimport pandas_flavor as pf\n\n@pf.register_dataframe_accessor('my_flavor')\nclass MyFlavor(object):\n\n def __init__(self, data):\n self._data\n\n def row_by_value(self, col, value):\n \"\"\"Slice out row from DataFrame by a value.\"\"\"\n return self._data[self._data[col] == value].squeeze()\n\n```\n\nEvery dataframe now has this accessor as an attribute.\n```python\n\n# DataFrame.\ndf = DataFrame(data={\n \"x\": [10, 20, 25],\n \"y\": [0, 2, 5]\n})\n\n# Print DataFrame\nprint(df)\n\n# x y\n# 0 10 0\n# 1 20 2\n# 2 25 5\n\n# Access this functionality\ndf.my_flavor.row_by_value('x', 10)\n\n# x 10\n# y 0\n# Name: 0, dtype: int64\n```\n\nTo see this in action, check out [pdvega](https://github.com/jakevdp/pdvega) and\n[PhyloPandas](https://github.com/Zsailer/phylopandas)!\n\n\n## Register methods\n\nUsing this package, you can attach functions directly to Pandas objects. No\nintermediate accessor is needed.\n\n```python\nimport pandas as pd\nimport pandas_flavor as pf\n\n@pf.register_dataframe_method\ndef row_by_value(df, col, value):\n \"\"\"Slice out row from DataFrame by a value.\"\"\"\n return df[df[col] == value].squeeze()\n\n```\n\n```python\n# DataFrame.\ndf = DataFrame(data={\n \"x\": [10, 20, 25],\n \"y\": [0, 2, 5]\n})\n\n# Print DataFrame\nprint(df)\n\n# x y\n# 0 10 0\n# 1 20 2\n# 2 25 5\n\n# Access this functionality\ndf.row_by_value('x', 10)\n\n# x 10\n# y 0\n# Name: 0, dtype: int64\n```\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Zsailer/pandas_flavor", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pandas-flavor", "package_url": "https://pypi.org/project/pandas-flavor/", "platform": "", "project_url": "https://pypi.org/project/pandas-flavor/", "project_urls": { "Homepage": "https://github.com/Zsailer/pandas_flavor" }, "release_url": "https://pypi.org/project/pandas-flavor/0.1.2/", "requires_dist": [ "pandas" ], "requires_python": "", "summary": "The easy way to write your own Pandas flavor.", "version": "0.1.2" }, "last_serial": 4079494, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "13c0454f764bee98eb39c660eea7210d", "sha256": "4af19e9937c7b2aab89b1bf717dad90151f6d9dd9e5da4e03c0fa377001ac294" }, "downloads": -1, "filename": "pandas_flavor-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13c0454f764bee98eb39c660eea7210d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4508, "upload_time": "2018-01-29T17:45:02", "url": "https://files.pythonhosted.org/packages/b4/61/8d9f0e693a6177223ca67514f783e9c1a2f8fe48892349b94e34a18b3a6c/pandas_flavor-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b800bec6280e18c2401e89634d44f7c", "sha256": "fdf661f0d684725140dd54c5ac9dbc51cc206d05d7b1ba2fb655ac05fd67f5d0" }, "downloads": -1, "filename": "pandas_flavor-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6b800bec6280e18c2401e89634d44f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3293, "upload_time": "2018-01-29T17:45:03", "url": "https://files.pythonhosted.org/packages/4d/bb/1a0bc3ad240eb22615a2cb350d210b8c7ed83c0567b44fab367b84b51235/pandas_flavor-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dbc692f0f8531c57f4a8512488bf24ed", "sha256": "5ae12ca81813baad0821ecd7316d89575cefac5a00e9e0993d4c337e10dd67f6" }, "downloads": -1, "filename": "pandas_flavor-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbc692f0f8531c57f4a8512488bf24ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5388, "upload_time": "2018-01-29T18:20:44", "url": "https://files.pythonhosted.org/packages/e1/c3/c9cceafff3247ba7442395f106087e3867d9f741e4fbfb19d77178904a4e/pandas_flavor-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1cbdf8017e5e0346c57d06efb15aecca", "sha256": "f35f3111b99405e43a2fd9e1552e5d855b151b23b49a15f025b318bfbc8b3761" }, "downloads": -1, "filename": "pandas_flavor-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1cbdf8017e5e0346c57d06efb15aecca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3826, "upload_time": "2018-01-29T18:20:46", "url": "https://files.pythonhosted.org/packages/15/15/f65df779b159a95e7d56224e2577803c20f4e690767e8aa910e2d0de5b7b/pandas_flavor-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2f93e2d5b87c1c2d200f2212dbd3a3c2", "sha256": "1838b4f63b676715d39f9abf39ad281b5f6d655fceebf8142090852f1e72e25e" }, "downloads": -1, "filename": "pandas_flavor-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f93e2d5b87c1c2d200f2212dbd3a3c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5746, "upload_time": "2018-07-18T18:52:17", "url": "https://files.pythonhosted.org/packages/79/35/092aa4518f4b386eb557c634f9765cdb3c6350950dfe2c58ed6e088e805d/pandas_flavor-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbcefc7c5334341a9392eb34d27a09e3", "sha256": "0add4a50e9e18decb986c5ad983ef8cc3fcedb195443500a0e4ea41cb70e7b4d" }, "downloads": -1, "filename": "pandas_flavor-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fbcefc7c5334341a9392eb34d27a09e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4142, "upload_time": "2018-07-18T18:52:18", "url": "https://files.pythonhosted.org/packages/ce/b6/690c24b45e219e1f9d8a681ec0a81a716440e01d8b861697d111f06eccd6/pandas_flavor-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2f93e2d5b87c1c2d200f2212dbd3a3c2", "sha256": "1838b4f63b676715d39f9abf39ad281b5f6d655fceebf8142090852f1e72e25e" }, "downloads": -1, "filename": "pandas_flavor-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f93e2d5b87c1c2d200f2212dbd3a3c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5746, "upload_time": "2018-07-18T18:52:17", "url": "https://files.pythonhosted.org/packages/79/35/092aa4518f4b386eb557c634f9765cdb3c6350950dfe2c58ed6e088e805d/pandas_flavor-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbcefc7c5334341a9392eb34d27a09e3", "sha256": "0add4a50e9e18decb986c5ad983ef8cc3fcedb195443500a0e4ea41cb70e7b4d" }, "downloads": -1, "filename": "pandas_flavor-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fbcefc7c5334341a9392eb34d27a09e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4142, "upload_time": "2018-07-18T18:52:18", "url": "https://files.pythonhosted.org/packages/ce/b6/690c24b45e219e1f9d8a681ec0a81a716440e01d8b861697d111f06eccd6/pandas_flavor-0.1.2.tar.gz" } ] }