{"id":13507188,"url":"https://github.com/JordiPolo/dataframe","last_synced_at":"2025-03-30T07:32:28.297Z","repository":{"id":57488302,"uuid":"66136897","full_name":"JordiPolo/dataframe","owner":"JordiPolo","description":"Package providing functionality similar to Python's Pandas or R's data.frame()","archived":false,"fork":false,"pushed_at":"2019-01-12T21:02:35.000Z","size":121,"stargazers_count":63,"open_issues_count":4,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-12T16:51:36.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JordiPolo.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}},"created_at":"2016-08-20T08:33:08.000Z","updated_at":"2025-01-28T11:39:51.000Z","dependencies_parsed_at":"2022-08-29T13:31:50.663Z","dependency_job_id":null,"html_url":"https://github.com/JordiPolo/dataframe","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordiPolo%2Fdataframe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordiPolo%2Fdataframe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordiPolo%2Fdataframe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordiPolo%2Fdataframe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JordiPolo","download_url":"https://codeload.github.com/JordiPolo/dataframe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290578,"owners_count":20753724,"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-08-01T02:00:26.732Z","updated_at":"2025-03-30T07:32:27.974Z","avatar_url":"https://github.com/JordiPolo.png","language":"Elixir","funding_links":[],"categories":["Algorithms and Data structures"],"sub_categories":[],"readme":"# Dataframe\n[![Build\nStatus](https://travis-ci.org/JordiPolo/dataframe.svg?branch=master)](https://travis-ci.org/JordiPolo/dataframe)\n\nDataFrame is a library that implements an API similar to [Python's Pandas](http://pandas.pydata.org/) or [R's data.frame()](http://www.r-tutor.com/r-introduction/data-frame).\n\n## Installation\n\nAdd `dataframe` to your list of dependencies in `mix.exs`:\n\n```\ndef deps do\n  [{:dataframe, \"~\u003e 0.1.0\"}]\nend\n```\n\n\n## Usage\n\n### Tutorials\n\n- [Lesson 1](tutorial/lesson1.md)\n\n\n### Creation\n```elixir\ndata = DataFrame.new(DataFrame.Table.build_random(6,4), [1,3,4,5], DataFrame.DateRange.new(\"2016-09-12\", 6))\n```\n\noutput:\n```\n              1             3             4             5\n2016-09-12    0.3216495192  0.3061978162  0.5240627861  0.3014870998\n2016-09-13    0.7085624128  0.1027917034  0.0274851281  0.4999253931\n2016-09-14    0.5409299230  0.7234486655  0.0902951353  0.9265397862\n2016-09-15    0.8144437609  0.7566869039  0.5943981962  0.4555049347\n2016-09-16    0.0228473208  0.9033617026  0.6984988237  0.9858222366\n2016-09-17    0.6401066584  0.2700256640  0.4256911712  0.1085587668\n```\n\n### Exploring\n```elixir\nDataFrame.head(data, 2)\n```\n```\n              1             3             4             5\n2016-09-12    0.3216495192  0.3061978162  0.5240627861  0.3014870998\n2016-09-13    0.7085624128  0.1027917034  0.0274851281  0.4999253931\n```\n\n```elixir\nDataFrame.tail(data, 1)\n```\n```\n              1             3             4             5\n2016-09-17    0.6401066584  0.2700256640  0.4256911712  0.1085587668\n```\n\n```elixir\nDataFrame.describe(data)\n```\n```\n              1             3             4             5\ncount         6             6             6             6\nmean          0.6465539263  0.5159964091  0.3872831261  0.3932447202\nstd           0.1529956837  0.3280592207  0.1795171140  0.3121805879\nmin           0.4016542004  0.0206350637  0.0337014209  0.0177659020\n25%           0.6282734986  0.5048574951  0.3799407685  0.2747983874\n50%           0.7006870983  0.6401629955  0.4141661547  0.4043847826\n75%           0.7412280866  0.6620905719  0.4517382532  0.4916518963\nmax           0.8024114094  0.9682031054  0.6199458675  0.8934404147\n```\n\n### Transposing\n\n```elixir\nDataFrame.transpose(data)\n```\n```\n              2016-09-12    2016-09-13    2016-09-14    2016-09-15    2016-09-16    2016-09-17\n1             0.3216495192  0.7085624128  0.5409299230  0.8144437609  0.0228473208  0.6401066584\n3             0.3061978162  0.1027917034  0.7234486655  0.7566869039  0.9033617026  0.2700256640\n4             0.5240627861  0.0274851281  0.0902951353  0.5943981962  0.6984988237  0.4256911712\n5             0.3014870998  0.4999253931  0.9265397862  0.4555049347  0.9858222366  0.1085587668\n```\n\n### Sorting\n\nSorting index (defaults bigger to smaller)\n```elixir\nDataFrame.sort_index(data)\n```\n```\n              1             3             4             5\n2016-09-17    0.6401066584  0.2700256640  0.4256911712  0.1085587668\n2016-09-16    0.0228473208  0.9033617026  0.6984988237  0.9858222366\n2016-09-15    0.8144437609  0.7566869039  0.5943981962  0.4555049347\n2016-09-14    0.5409299230  0.7234486655  0.0902951353  0.9265397862\n2016-09-13    0.7085624128  0.1027917034  0.0274851281  0.4999253931\n2016-09-12    0.3216495192  0.3061978162  0.5240627861  0.3014870998\n```\n\nSorting by a column (false to sort smaller to bigger)\n```elixir\nDataFrame.sort_values(data, 4, false)\n```\n```\n              1             3             4             5\n2016-09-13    0.7085624128  0.1027917034  0.0274851281  0.4999253931\n2016-09-14    0.5409299230  0.7234486655  0.0902951353  0.9265397862\n2016-09-17    0.6401066584  0.2700256640  0.4256911712  0.1085587668\n2016-09-12    0.3216495192  0.3061978162  0.5240627861  0.3014870998\n2016-09-15    0.8144437609  0.7566869039  0.5943981962  0.4555049347\n2016-09-16    0.0228473208  0.9033617026  0.6984988237  0.9858222366\n```\n\n### Selecting\n\nBy name:\n```elixir\nDataFrame.loc(data, DataFrame.DateRange.new(\"2016-09-15\", 2), [3,4])\n```\n```\n              3             4\n2016-09-15    0.5417848216  0.5546980818\n2016-09-16    0.6621771048  0.5763923325\n```\n\nA specific data by name:\n```elixir\nDataFrame.at(data, \"2016-09-15\", 4)\n```\n```\n0.5546980818725673\n```\n\n\nBy position:\n```elixir\nDataFrame.iloc(data, 4..6, 2..4)\n```\n```\n              4             5\n2016-09-16    0.6984988237  0.9858222366\n2016-09-17    0.4256911712  0.1085587668\n```\n\n```elixir\nDataFrame.iat(data, 0, 0)\n```\n```\n0.31553155828919915\n```\n\nThe library is in very early stages of development. No effort has been made to optimize its performance. Expect it to be slow.\n\n### Plotting\n\nIf you have Python and Matplotlib you can plot the data in your Dataframe.\nCheck out the [Explot](https://github.com/JordiPolo/explot) package for installation details.\n\nLet's plot the cummulative sum of the values:\n\n```\n data |\u003e DataFrame.cumsum |\u003e DataFrame.plot\n```\n\nWill give us this graph:\n![](readme_example.png)\n\n\n## Development\n\nRun tests\n```\nmix test\n```\n\n## TODO\n\n- Deal with exceptions (negative numbers as input, etc.)\n- Setting of subtable data\n- Types of columns (no stat data on text, etc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJordiPolo%2Fdataframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJordiPolo%2Fdataframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJordiPolo%2Fdataframe/lists"}