{"id":19958025,"url":"https://github.com/echemdb/astropy-pandas","last_synced_at":"2026-01-03T06:33:20.587Z","repository":{"id":255277326,"uuid":"849092749","full_name":"echemdb/astropy-pandas","owner":"echemdb","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-05T22:37:58.000Z","size":500,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-13T01:39:45.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/echemdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-29T00:53:07.000Z","updated_at":"2024-09-05T22:38:01.000Z","dependencies_parsed_at":"2024-08-29T01:55:10.911Z","dependency_job_id":"a56012fa-32f2-4a2d-b181-58b208df937f","html_url":"https://github.com/echemdb/astropy-pandas","commit_stats":null,"previous_names":["echemdb/astropy-pandas"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echemdb%2Fastropy-pandas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echemdb%2Fastropy-pandas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echemdb%2Fastropy-pandas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echemdb%2Fastropy-pandas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/echemdb","download_url":"https://codeload.github.com/echemdb/astropy-pandas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233575854,"owners_count":18696686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T01:39:52.609Z","updated_at":"2025-09-19T15:32:37.037Z","avatar_url":"https://github.com/echemdb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"logo\" src=\"https://github.com/echemdb/astropy-pandas/raw/main/logo.png\" width=\"300px\"\u003e\n\u003c/p\u003e\n\n\n# astropy-pandas\n\nHeavily inspired by pint-pandas, we are trying to bring astropy units into pandas data frames. As of this writing this is just a proof-of-concept, a lot of work is needed to make this work properly.\n\nMinimal example:\n\n```py\n\u003e\u003e\u003e import astropy_pandas\n\u003e\u003e\u003e import pandas as pd\n\u003e\u003e\u003e df = pd.DataFrame({\n...      'x': pd.Series([13.], dtype=\"astropy[parsec]\"),\n...      'y': pd.Series([37.], dtype=\"astropy[angstrom]\")})\n\u003e\u003e\u003e (df['x'] * df['y']).astropy.to('km2')\n0    1484.210916697348\ndtype: astropy[km2]\n```\n\n## Roadmap to 1.0\n\n* [ ] What can we learn from physipandas (MIT license)\n* [ ] Make underlying data types explicit, `astropy[parsec][float64]` probably as in https://github.com/hgrecco/pint-pandas/pull/247/files\n* [ ] Easy conversion to a unit-free data frame\n* [ ] Implement (or test that default works) everything mentioned in https://pandas.pydata.org/docs/reference/api/pandas.api.extensions.ExtensionArray.html\n* [ ] Show benchmarks (compare to data frames made from astropy quantities, compare to pint-pandas, compare to physipandas)\n* [ ] Decide on a license. Probably we should use GPL3+ again. We'll heavily pull from pint-pandas which is BSD-3-clause but there should be no problem as long as we retain their copyright notice * [ ] Announce at https://stackoverflow.com/questions/39419178/how-can-i-manage-units-in-pandas-data\n* [ ] Mention at https://pint.readthedocs.io/en/0.10.1/pint-pandas.html\n* [ ] Mention at https://pandas.pydata.org/community/ecosystem.html\nsomewhere. However, maybe it's better to stick to BSD-3-Clause so pint-pandas can pull things back from us. Also pandas and astropy are both BSD-3-clause.\n\n## Potential Limitations\n\n* [ ] Plotly doesn't like these data frames: https://github.com/hgrecco/pint-pandas/issues/249\n* [ ] `set_index` might not work: https://github.com/hgrecco/pint-pandas/issues/231 and https://github.com/hgrecco/pint-pandas/issues/44\n* [ ] Problems when comparing data frames with different units\n* [ ] `allclose` might not work, see https://github.com/hgrecco/pint-pandas/issues/108\n* [ ] `apply` might not work on DataFrame, see https://github.com/hgrecco/pint-pandas/issues/55\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechemdb%2Fastropy-pandas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechemdb%2Fastropy-pandas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechemdb%2Fastropy-pandas/lists"}