{"id":15046509,"url":"https://github.com/rvanasa/pandas-gpt","last_synced_at":"2025-05-09T00:06:11.255Z","repository":{"id":157866722,"uuid":"633681199","full_name":"rvanasa/pandas-gpt","owner":"rvanasa","description":"Power up your data science workflow with ChatGPT.","archived":false,"fork":false,"pushed_at":"2025-04-10T23:28:09.000Z","size":506,"stargazers_count":58,"open_issues_count":2,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-09T00:05:59.546Z","etag":null,"topics":["chatgpt","claude-ai","data-cleaning","data-engineering","data-science","data-visualization","gemini","generative-ai","gpt4","jupyter-notebook","litellm","low-code","matplotlib","numpy","o1","openai","pandas","productivity","scipy","seaborn"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pandas-gpt","language":"Jupyter Notebook","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/rvanasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-04-28T03:33:51.000Z","updated_at":"2025-01-07T06:46:50.000Z","dependencies_parsed_at":"2024-12-04T23:33:25.398Z","dependency_job_id":null,"html_url":"https://github.com/rvanasa/pandas-gpt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvanasa%2Fpandas-gpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvanasa%2Fpandas-gpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvanasa%2Fpandas-gpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvanasa%2Fpandas-gpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rvanasa","download_url":"https://codeload.github.com/rvanasa/pandas-gpt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166518,"owners_count":21864476,"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":["chatgpt","claude-ai","data-cleaning","data-engineering","data-science","data-visualization","gemini","generative-ai","gpt4","jupyter-notebook","litellm","low-code","matplotlib","numpy","o1","openai","pandas","productivity","scipy","seaborn"],"created_at":"2024-09-24T20:53:10.939Z","updated_at":"2025-05-09T00:06:11.227Z","avatar_url":"https://github.com/rvanasa.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `pandas-gpt` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/rvanasa/pandas-gpt/blob/main/notebooks/pandas_gpt_demo.ipynb)\n\n\u003e ### Power up your data science workflow with LLMs.\n\n---\n\n`pandas-gpt` is a Python library for doing almost anything with a [pandas](https://pandas.pydata.org/) DataFrame using ChatGPT or any other [Large Language Model](https://www.cloudflare.com/learning/ai/what-is-large-language-model/) (LLM).\n\n## Installation\n\n```bash\npip install pandas-gpt[openai]\n```\n\nYou may also want to install the optional [`openai`](https://pypi.org/project/openai/) and/or [`litellm`](https://pypi.org/project/litellm/) dependencies.\n\nNext, set the `OPENAI_API_KEY` environment variable to your [OpenAI API key](https://platform.openai.com/account/api-keys), or use the following code snippet:\n\n```python\nimport openai\nopenai.api_key = '\u003cAPI Key\u003e'\n```\n\nIf you're looking for a free alternative to the OpenAI API, we encourage using [Google Gemini](https://ai.google.dev/gemini-api/docs/api-key) for code completion:\n\n```bash\npip install pandas-gpt[litellm]\n```\n\n```python\nimport pandas_gpt\npandas_gpt.completer = pandas_gpt.LiteLLM('gemini/gemini-1.5-pro', api_key='...')\n```\n\n## Examples\n\nSetup and usage examples are available in this **[Google Colab notebook](https://colab.research.google.com/github/rvanasa/pandas-gpt/blob/main/notebooks/pandas_gpt_demo.ipynb)**.\n\n```python\nimport pandas as pd\nimport pandas_gpt\n\ndf = pd.DataFrame('https://gist.githubusercontent.com/bluecoconut/9ce2135aafb5c6ab2dc1d60ac595646e/raw/c93c3500a1f7fae469cba716f09358cfddea6343/sales_demo_with_pii_and_all_states.csv')\n\n# Data transformation\ndf = df.ask('drop purchases from Laurenchester, NY')\ndf = df.ask('add a new Category column with values \"cheap\", \"regular\", or \"expensive\"')\n\n# Queries\nweekday = df.ask('which day of the week had the largest number of orders?')\ntop_10 = df.ask('what are the top 10 most popular products, as a table')\n\n# Plotting\ndf.ask('plot monthly and hourly sales')\ntop_10.ask('horizontal bar plot with pastel colors')\n\n# Allow changes to original dataset\ndf.ask('do something interesting', mutable=True)\n\n# Show source code before running\ndf.ask('convert prices from USD to GBP', verbose=True)\n```\n\n## Custom Language Models\n\nIt's possible to use a different language model with the `completer` config option:\n\n```python\nimport pandas_gpt\n\n# Global default\npandas_gpt.completer = pandas_gpt.OpenAI('gpt-3.5-turbo')\n\n# Custom completer for a specific request\ndf.ask('Do something interesting with the data', completer=pandas_gpt.LiteLLM('gemini/gemini-1.5-pro'))\n```\n\nBy default, API keys are picked up from environment variables such as `OPENAI_API_KEY`.\nIt's also possible to specify an API key for a particular call:\n\n```python\ndf.ask('Do something important with the data', completer=pandas_gpt.OpenAI('gpt-4o', api_key='...'))\n```\n\n### OpenAI\n\n```python\npandas_gpt.completer = pandas_gpt.OpenAI('gpt-4o')\n```\n\n### LiteLLM\n\n```python\npandas_gpt.completer = pandas_gpt.LiteLLM('gemini/gemini-1.5-pro')\n```\n\n### Local (Huggingface)\n\n```python\npandas_gpt.completer = pandas_gpt.LiteLLM('huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct')\n```\n\n### OpenRouter\n\n```python\npandas_gpt.completer = pandas_gpt.OpenRouter('anthropic/claude-3.5-sonnet')\n```\n\n### Anything\n\n```python\ndef my_custom_completer(prompt: str) -\u003e str:\n  # Use an LLM or any other method to create a `process()` function that\n  # takes a pandas DataFrame as a single argument, does some operations on it,\n  # and return a DataFrame.\n  return 'def process(df): ...'\n\npandas_gpt.completer = my_custom_completer\n```\n\nIf you want to use a fully customized API host such as [Azure OpenAI Service](https://azure.microsoft.com/en-us/products/cognitive-services/openai-service),\nyou can globally configure the `openai` and `pandas-gpt` packages:\n\n```python\nimport openai\nopenai.api_type = 'azure'\nopenai.api_base = '\u003cEndpoint\u003e'\nopenai.api_version = '\u003cVersion\u003e'\nopenai.api_key = '\u003cAPI Key\u003e'\n\nimport pandas_gpt\npandas_gpt.completer = pandas_gpt.OpenAI(\n  model='gpt-3.5-turbo',\n  engine='\u003cEngine\u003e',\n  deployment_id='\u003cDeployment ID\u003e',\n)\n```\n\n## Alternatives\n\n- [GitHub Copilot](https://github.com/features/copilot): General-purpose code completion (paid subscription)\n- [Sketch](https://github.com/approximatelabs/sketch): AI-powered data summarization and code suggestions (works without an API key)\n\n## Disclaimer\n\nPlease note that the [limitations](https://github.com/openai/gpt-3/blob/master/model-card.md#limitations) of ChatGPT also apply to this library. I would recommend using `pandas-gpt` in a sandboxed environment such as [Google Colab](https://colab.research.google.com), [Kaggle](https://www.kaggle.com/docs/notebooks), or [GitPod](https://www.gitpod.io/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frvanasa%2Fpandas-gpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frvanasa%2Fpandas-gpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frvanasa%2Fpandas-gpt/lists"}