Skip to main content

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 OPENAI_API_KEY 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
pandas_gpt.completer = pandas_gpt.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/sales_demo_with_pii_and_all_states.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
pandas_gpt.completer = pandas_gpt.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 OPENAI_API_KEY. It's also possible to specify an API key for a particular call:

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

OpenAI

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

LiteLLM

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

Local (Huggingface)

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

OpenRouter

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

Anything

def my_custom_completer(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): ...'

pandas_gpt.completer = my_custom_completer

If you want to use a fully customized API host such as 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
pandas_gpt.completer = pandas_gpt.OpenAI(
  model='gpt-3.5-turbo',
  engine='<Engine>',
  deployment_id='<Deployment ID>',
)

Alternatives

  • GitHub Copilot: General-purpose code completion (paid subscription)
  • 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.

Release files for pandas-gpt 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pandas-gpt 1.0.0
File Size Uploaded
pandas_gpt-1.0.0.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pandas-gpt 1.0.0
File Interpreter ABI Platform
pandas_gpt-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.6 kB

Release files / pandas_gpt-1.0.0.tar.gz

Download URL pandas_gpt-1.0.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
aa6d7142e70d775d24e547a00fe6a58d3e14c82959e2934d6e5d2633e1e91275
BLAKE2b-256 checksum
How to use checksums
86356209ecfeb8555fe44c86bc5b097dac4728d904412b90c521b94263406687
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / pandas_gpt-1.0.0-py3-none-any.whl

Download URL pandas_gpt-1.0.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26f15359cf49798757f986c3061dc0a490eda7fd6af9f0f0ca4c29005261d786
BLAKE2b-256 checksum
How to use checksums
402f1782aa04fcafc462352f8d336f1fdb445061fb76fe776552da3629a48716
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page