{"id":15008673,"url":"https://github.com/w2sv/koala","last_synced_at":"2026-04-20T19:00:44.255Z","repository":{"id":59025779,"uuid":"534770402","full_name":"w2sv/koala","owner":"w2sv","description":"A poor man's version of a pandas DataFrame for dart.","archived":false,"fork":false,"pushed_at":"2026-04-20T17:09:54.000Z","size":77,"stargazers_count":17,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-20T17:13:43.144Z","etag":null,"topics":["dart","dartlang","data","dataframe","datamanagement","datamanipulation","flutter","pandas-dataframe"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/koala","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w2sv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-09T18:58:29.000Z","updated_at":"2026-04-20T17:10:10.000Z","dependencies_parsed_at":"2023-09-27T20:15:28.179Z","dependency_job_id":"f3b87ba1-c5c2-4287-8e62-4a1967e6a55b","html_url":"https://github.com/w2sv/koala","commit_stats":{"total_commits":33,"total_committers":2,"mean_commits":16.5,"dds":"0.21212121212121215","last_synced_commit":"57007ee9b8911badf554c6faa6574dca2565a72e"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/w2sv/koala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2sv%2Fkoala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2sv%2Fkoala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2sv%2Fkoala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2sv%2Fkoala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w2sv","download_url":"https://codeload.github.com/w2sv/koala/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2sv%2Fkoala/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32061251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dart","dartlang","data","dataframe","datamanagement","datamanipulation","flutter","pandas-dataframe"],"created_at":"2024-09-24T19:19:58.367Z","updated_at":"2026-04-20T19:00:44.214Z","avatar_url":"https://github.com/w2sv.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# koala\n\n[![Build](https://github.com/w2sv/koala/actions/workflows/build.yaml/badge.svg)](https://github.com/w2sv/koala/actions/workflows/build.yaml)\n[![codecov](https://codecov.io/gh/w2sv/koala/branch/master/graph/badge.svg?token=LI73RYG6T0)](https://codecov.io/gh/w2sv/koala)\n[![Pub Version](https://img.shields.io/pub/v/koala)](https://pub.dev/packages/koala/changelog)\n[![Pub Points](https://img.shields.io/pub/points/koala)](https://pub.dev/packages/koala/score)\n[![GitHub](https://img.shields.io/github/license/w2sv/koala)](https://github.com/w2sv/koala/blob/master/LICENSE)\n\nA poor man's version of a pandas DataFrame.\\\nCollect, access \u0026 manipulate related data.\n\n## Examples\n\nCreate a DataFrame from a csv file, preexisting column names and data, map \nrepresentations of the data or create an empty DataFrame and provide it with its \nproperties later on  \n\n```dart\nfinal fromCsv = Dataframe.fromCsv(\n    path: 'path/to/file.csv', \n    eolToken: '\\n', \n    maxRows: 40,\n    skipColumns: ['some-irrelevant-column'],\n    convertDates: true,\n    datePattern: 'dd-MM-yyyy'\n);\n\nfinal fromNamesAndData = DataFrame(\n    ['a', 'b'], \n    [\n      [1, 2],\n      [3, 4],\n      [69, 420]\n    ]\n);\n```\n\nThe `DataFrame` class inherits from the list which contains its data matrix, so rows\nmay be accessed through normal indexing.\nColumns on the other hand can be accessed by calling the instance with a contained column name.\n\n```dart\n// get a row\nfinal secondRow = df[1];\n\n// get a column\nfinal bColumn = df('b');\nfinal typedBColumn = df\u003cdouble?\u003e('b');\nfinal slicedBColumn = df('b', start: 1, end: 5);\nfinal filteredBColumn = df.columnAsIterable('b').where((el) =\u003e el \u003e 7).toList();\n\n// grab a singular record\nfinal record = df.record\u003cint\u003e(3, 'b');\n```\n\nManipulate rows \u0026 column\n\n```dart\n// add and remove rows through the built-in list methods \ndf.add([2, 5]);\ndf.removeAt(4);\ndf.removeLast();\n\n// manipulate columns\ndf.addColumn('newColumn', [4, 8, 2]);\ndf.removeColumn('newColumn');\ndf.transformColumn('a', (record) =\u003e record * 2);\n```\n\nCopy or slice the `DataFrame`\n\n```dart\nfinal copy = df.copy();\nfinal sliced = df.sliced(start: 30, end: 60);   \ndf.slice(start: 10, end: 15);  // in-place counterpart\n```\n\nSort the `DataFrame` in-place or get a sorted copy of it\n\n```dart\nfinal sorted = df.sortedBy('a', ascending: true, nullFirst: false);\nsorted.sortBy('b', ascending: false, compareRecords: (a, b) =\u003e Comparable.compare(a.toString().length, b.toString().length));\n```\n\nObtain a readable representation of the `DataFrame` by simply passing it to the print function\n```dart\nDataFrame df = DataFrame.fromRowMaps([\n  {'col1': 1, 'col2': 2},\n  {'col1': 1, 'col2': 1},\n  {'col1': null, 'col2': 8},\n]);\nprint(df);\n```\nleads to the output:\n\n```text\n    col1 col2\n0 | 1    2   \n1 | 1    1   \n2 | null 8   \n```\n\n...and so on and so forth.\n\n## Contribution\n\nI intend to actively maintain this repo, so feel free to create PRs, as there\nstill is a hell of a lot of functionality one may add to the `DataFrame`.\n\n## Acknowledgements\n\nThis repository started off as a fork from the as of now unmaintained and generally lackluster [df](https://github.com/synw/df),\nultimately however, I wound up rewriting basically everything. Still, shout out boyz. \n\n## Author\n\nC'est moi, w2sv\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw2sv%2Fkoala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw2sv%2Fkoala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw2sv%2Fkoala/lists"}