rvanasa
pandas-gpt
Jupyter Notebook

Power up your data science workflow with ChatGPT.

Last updated Dec 25, 2025
61
Stars
9
Forks
0
Issues
0
Stars/day
Attention Score
46
Language breakdown
Jupyter Notebook 97.1%
Python 2.9%
Files click to expand
README

pandas-gpt Open In Colab

### Power up your data science workflow with LLMs.

pandas-gpt is a Python library for doing almost anything with a pandas DataFrame using ChatGPT or any other Large Language Model (LLM).

Installation

pip install pandas-gpt[openai]

You may also want to install the optional openai and/or litellm dependencies.

Next, set the OPENAIAPIKEY environment variable to your OpenAI API key, or use the following code snippet:

import openai
openai.api_key = '<API Key>'

If you're looking for a free alternative to the OpenAI API, we encourage using Google Gemini for code completion:

pip install pandas-gpt[litellm]
import pandas_gpt
pandasgpt.completer = pandasgpt.LiteLLM('gemini/gemini-1.5-pro', api_key='...')

Examples

Setup and usage examples are available in this Google Colab notebook.

import pandas as pd
import pandas_gpt

df = pd.DataFrame('https://gist.githubusercontent.com/bluecoconut/9ce2135aafb5c6ab2dc1d60ac595646e/raw/c93c3500a1f7fae469cba716f09358cfddea6343/salesdemowithpiiandallstates.csv')

Data transformation

df = df.ask('drop purchases from Laurenchester, NY') df = df.ask('add a new Category column with values "cheap", "regular", or "expensive"')

Queries

weekday = df.ask('which day of the week had the largest number of orders?') top_10 = df.ask('what are the top 10 most popular products, as a table')

Plotting

df.ask('plot monthly and hourly sales') top_10.ask('horizontal bar plot with pastel colors')

Allow changes to original dataset

df.ask('do something interesting', mutable=True)

Show source code before running

df.ask('convert prices from USD to GBP', verbose=True)

Custom Language Models

It's possible to use a different language model with the completer config option:

import pandas_gpt

Global default

pandasgpt.completer = pandasgpt.OpenAI('gpt-3.5-turbo')

Custom completer for a specific request

df.ask('Do something interesting with the data', completer=pandas_gpt.LiteLLM('gemini/gemini-1.5-pro'))

By default, API keys are picked up from environment variables such as OPENAIAPIKEY. It's also possible to specify an API key for a particular call:

df.ask('Do something important with the data', completer=pandasgpt.OpenAI('gpt-4o', apikey='...'))

OpenAI

pandasgpt.completer = pandasgpt.OpenAI('gpt-4o')

LiteLLM

pandasgpt.completer = pandasgpt.LiteLLM('gemini/gemini-1.5-pro')

Local (Huggingface)

pandasgpt.completer = pandasgpt.LiteLLM('huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct')

OpenRouter

pandasgpt.completer = pandasgpt.OpenRouter('anthropic/claude-3.5-sonnet')

Azure

If you want to use the Azure OpenAI Service, you can globally configure the openai and pandas-gpt packages:

import openai
openai.api_type = 'azure'
openai.api_base = '<Endpoint>'
openai.api_version = '<Version>'
openai.api_key = '<API Key>'

import pandas_gpt pandasgpt.completer = pandasgpt.AzureOpenAI( model='gpt-3.5-turbo', engine='<Engine>', deployment_id='<Deployment ID>', )

Custom

It's also possible to use fully custom code generation:

def mycustomcompleter(prompt: str) -> str:
  # Use an LLM or any other method to create a process() function that
  # takes a pandas DataFrame as a single argument, does some operations on it,
  # and return a DataFrame.
  return 'def process(df): ...'

pandasgpt.completer = mycustom_completer

Alternatives

  • Sketch: AI-powered data summarization and code suggestions (works without an API key)

Disclaimer

Please note that the limitations of ChatGPT also apply to this library. I would recommend using pandas-gpt in a sandboxed environment such as Google Colab, Kaggle, or GitPod.

🔗 More in this category

© 2026 GitRepoTrend · rvanasa/pandas-gpt · Updated daily from GitHub