{"id":17632499,"url":"https://github.com/drhagen/tabeline","last_synced_at":"2025-06-15T20:02:05.266Z","repository":{"id":50375363,"uuid":"458636717","full_name":"drhagen/tabeline","owner":"drhagen","description":"User-friendly data frame and data grammar library for Python","archived":false,"fork":false,"pushed_at":"2024-11-26T19:45:29.000Z","size":1716,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-08T10:10:16.373Z","etag":null,"topics":["data-grammar","data-table","dplyr"],"latest_commit_sha":null,"homepage":"https://tabeline.drhagen.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drhagen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","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":"2022-02-12T20:52:33.000Z","updated_at":"2024-11-26T19:45:33.000Z","dependencies_parsed_at":"2024-05-12T13:30:59.269Z","dependency_job_id":"ffb5c83c-72a0-4358-9dfa-748188f55036","html_url":"https://github.com/drhagen/tabeline","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"3caa8863f1a0681a23fe4fa4304a31a5235d592e"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhagen%2Ftabeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhagen%2Ftabeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhagen%2Ftabeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhagen%2Ftabeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drhagen","download_url":"https://codeload.github.com/drhagen/tabeline/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233503570,"owners_count":18685987,"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":["data-grammar","data-table","dplyr"],"created_at":"2024-10-23T01:24:05.223Z","updated_at":"2025-01-11T16:18:20.866Z","avatar_url":"https://github.com/drhagen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tabeline\n\nTabeline is a data frame and data grammar library. You write the expressions in strings and supply them to methods on the `DataFrame` class. The strings are parsed by Parsita and converted into Polars for execution.\n\nTabeline draws inspiration from dplyr, the data grammar of R's tidyverse, especially for its methods names. The `filter`, `mutate`, `group_by`, and `summarize` methods should all feel familiar. But Tabeline is as proper a Python library as can be, using methods instead of pipes, like is standard in R. \n\nTabeline uses Polars under the hood, but adds a lot of handling of edge cases from Polars, which otherwise result in crashes or behavior that is not type stable.\n\nSee the [Documentation](https://tabeline.drhagen.com) for the full user guide.\n\n## Installation\n\nIt is recommended to install Tabeline from PyPI using `pip`.\n\n```shell\npip install tabeline\n```\n\n## Motivating example\n\n```python\nfrom tabeline import DataFrame\n\n# Construct a data frame using clean syntax\n# from_csv, from_pandas, and from_polars are also available \ndf = DataFrame(\n    id=[0, 0, 0, 0, 1, 1, 1, 1, 1],\n    t=[0, 6, 12, 24, 0, 6, 12, 24, 48],\n    y=[0, 2, 3, 1, 0, 4, 3, 2, 1],\n)\n\n# Use data grammar methods and string expressions to define\n# transformed data frames\nanalysis = (\n    df\n    .filter(\"t \u003c= 24\")\n    .group_by(\"id\")\n    .summarize(auc=\"trapz(t, y)\")\n)\n\nprint(analysis)\n# shape: (2, 2)\n# ┌─────┬──────┐\n# │ id  ┆ auc  │\n# │ --- ┆ ---  │\n# │ i64 ┆ f64  │\n# ╞═════╪══════╡\n# │ 0   ┆ 45.0 │\n# ├╌╌╌╌╌┼╌╌╌╌╌╌┤\n# │ 1   ┆ 63.0 │\n# └─────┴──────┘\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhagen%2Ftabeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrhagen%2Ftabeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhagen%2Ftabeline/lists"}