{"id":18697405,"url":"https://github.com/cassiofb-dev/pandasscript","last_synced_at":"2026-04-09T12:51:01.142Z","repository":{"id":104454874,"uuid":"367987269","full_name":"cassiofb-dev/pandasscript","owner":"cassiofb-dev","description":"Pandas Script, uma lingaguem para visualizar e gerenciar dados.","archived":false,"fork":false,"pushed_at":"2021-05-21T02:04:16.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-18T09:08:45.279Z","etag":null,"topics":["compilers","lexer","numpy","pandas","parser","python"],"latest_commit_sha":null,"homepage":"","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/cassiofb-dev.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":"2021-05-16T21:18:55.000Z","updated_at":"2024-06-25T18:02:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7047f16d-e240-4dd3-9458-1c08a02e5220","html_url":"https://github.com/cassiofb-dev/pandasscript","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/cassiofb-dev%2Fpandasscript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fpandasscript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fpandasscript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fpandasscript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cassiofb-dev","download_url":"https://codeload.github.com/cassiofb-dev/pandasscript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239558929,"owners_count":19658929,"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":["compilers","lexer","numpy","pandas","parser","python"],"created_at":"2024-11-07T11:24:12.325Z","updated_at":"2025-11-08T16:30:35.680Z","avatar_url":"https://github.com/cassiofb-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  Pandas Script\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eLinguagem baseada no \u003ca href=\"https://pandas.pydata.org/\"\u003ePandas\u003c/a\u003e e feita com \u003ca href=\"https://www.python.org/\"\u003ePython\u003c/a\u003e.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#introdução\"\u003eIntrodução\u003c/a\u003e •\n  \u003ca href=\"#funcionalidades\"\u003eFuncionalidades\u003c/a\u003e •\n  \u003ca href=\"#como-usar\"\u003eComo usar\u003c/a\u003e •\n  \u003ca href=\"#exemplo\"\u003eExemplo\u003c/a\u003e •\n  \u003ca href=\"#documentação\"\u003eDocumentação\u003c/a\u003e •\n  \u003ca href=\"#produções-e-ações-semânticas\"\u003eProduções e Ações Semânticas\u003c/a\u003e •\n  \u003ca href=\"#créditos\"\u003eCréditos\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n[![screenshot](https://i.imgur.com/nWrDkmN.png)](https://www.youtube.com/watch?v=JWDCLF0NqS8)\n\n## Introdução\nO Pandas Script é uma linguagem simples de alto nível que tem como objetivo simplificar e agilizar a visualização e gerenciamento de dados como CSV.\n\n## Funcionalidades\n\n* PS Shell - Shell interativo\n  - Faça programas curtos, checagens rápidas ou aprendizado dinâmico.\n* Parse de Arquivos\n  - Para programas longos e complexo\n* Suporte para\n  - Inteiros\n  - Floats\n  - Strings\n* Operações com arquivos\n  - Leitura\n  - Escrita\n  - Selecionar\n  - Cortar\n  - Gerar gráfico simples\n* Arquivos online\n  - Leitura de arquivos pode ser através de uma URL\n* Informações estatísticas - Calcule\n  - Média\n  - Mediana\n  - Desvio Padrão\n\n## Como usar\n\n[Video de apresentação](https://www.youtube.com/watch?v=JWDCLF0NqS8).\n\nPara clonar e rodar essa aplicação, você irá precisar [Git](https://git-scm.com), [Python](https://www.python.org/). Pelo seu terminal:\n\n```bash\n# Clone o repositório\ngit clone https://github.com/cassiofb-dev/pandasscript\n\n# Entre no repositório\ncd pandasscript\n\n# Instale as dependências\npip install numpy\npip install pandas\n\n# Rode a aplicação\npy main.py\n```\n\n## Exemplo\n```\ncovid_data  = LOAD \"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv\"\nbrazil_data = CUT 30 31 covid_data\ndeaths      = CUT 474 484 brazil_data 1\nPLOT deaths \"Mortes por COVID\"\n```\n\nRodando o exemplo no terminal:\n```\npy main.py .\\example\\covid_death.ps\n```\n\nGráfico gerado:\n![covid](https://i.imgur.com/455rc7J.png)\n\nÁrvore de geração utilizada caso a linha 2 fosse um print no lugar de um asssing:\n![arvore](https://i.imgur.com/3q7fWa5.png)\n\n## Documentação\n\n- ``py main.py``\n  - Executa o shell\n- ``py main.py help``\n  - Executa o comando de ajuda\n- ``py main.py license``\n  - Executa o comando de licensa\n- ``py main.py copyright``\n  - Executa o comando de copyright\n- ``py main.py filePath``\n  - Executa o parse de um arquivo\n\n## Produções e Ações Semânticas\n\nObservações:\n- Tokens em caixa alta\n- Funções completas das ações sintáticas podem ser encontradas no [código de funções](https://github.com/cassiofb-dev/pandasscript/blob/master/lang/PSFunctions.py), elas são utilizadas atráves do módulo ``psf``\n- Tokens dos operadores substituido pelos próprios para simplificação da leitura (Ex: \"=\" ficará no lugar de \"ASSIGN\")\n```bnf\nGrammar                                         Action\n------------------------                        ---------------------------------\nstatement : PRINT expr                          print(expr.val)\n          | SAVE ID STRING                      psf.save(ID.val, STRING.val)\n          | ID = expr                           ID.val = expr.val\n          | expr                                ---\n\nexpr0     : expr1 + expr2                       expr0.val = expr1.val + expr2.val\n          | expr1 - expr2                       expr0.val = expr1.val - expr2.val\n          | expr1 * expr2                       expr0.val = expr1.val * expr2.val\n          | expr1 / expr2                       expr0.val = expr1.val / expr2.val\n          | (expr1)                             expr0.val = expr1.val\n          | FLOAT                               expr0.val = float(FLOAT.val)\n          | INT                                 expr0.val = int(INT.val)\n          | STRING                              expr0.val = string(STRING.val)\n          | ID                                  self.ids[ID.val]\n          | COLUMNS ID                          expr0.val = psf.columns(self.ids[ID.val])\n          | LOAD STRING                         expr0.val = psf.load(STRING.val)\n          | CUT INTEGER1 INTEGER2 ID            expr0.val = psf.cut(INTEGER1.val, INTEGER2.val, self.ids[ID.val])\n          | CUT INTEGER1 INTEGER2 ID INTEGER3   expr0.val = psf.cut(INTEGER1.val, INTEGER2.val, self.ids[ID.val], INTEGER3.val)\n          | MEDIAN expr1                        expr0.val = psf.median(expr1.val)\n          | MEAN expr1                          expr0.val = psf.mean(expr1.val)\n          | STD expr1                           expr0.val = psf.std(expr1.val)\n          | select                              expr0.val = select.val\n          | PLOT ID STRING                      psf.plot(self.ids[ID.val], STRING.val)\n\nselect    : SELECT STRING STRING FROM expr      psf.select_from(STRING0.val, STRING1.val, expr.val)\n          | SELECT STRING FROM expr             psf.select_from(STRING.val, None, expr.val)\n          | SELECT FROM expr                    psf.select_from(None, None, expr.val)\n```\n\n## Créditos\n\nEssa aplicação utiliza os seguintes projetos de código aberto:\n\n- [Python](https://www.python.org/)\n- [Numpy](https://numpy.org/)\n- [Pandas](https://pandas.pydata.org/)\n- [SLY](https://github.com/dabeaz/sly)\n- [COVID dataset](https://github.com/CSSEGISandData/COVID-19)\n\nInspiração do README [electron-markdownify](https://github.com/amitmerchant1990/electron-markdownify).\n\n## License\n\nMIT\n\n---\n\n\u003e [Acesse meu site](https://cassiofernando.netlify.app/) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e GitHub [@cassiofb-dev](https://github.com/cassiofb-dev) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Twitter [@cassiofb_dev](https://twitter.com/cassiofb_dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassiofb-dev%2Fpandasscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcassiofb-dev%2Fpandasscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassiofb-dev%2Fpandasscript/lists"}