GithubHelp home page GithubHelp logo

zvill / pandas-ai Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sinaptik-ai/pandas-ai

0.0 0.0 0.0 37.49 MB

Chat with your database (SQL, CSV, pandas, polars, mongodb, noSQL, etc). PandasAI makes data analysis conversational using LLMs (GPT 3.5 / 4, Anthropic, VertexAI) and RAG.

Home Page: https://pandas-ai.com

License: Other

Shell 0.06% JavaScript 0.06% Python 84.08% TypeScript 13.70% CSS 1.53% Makefile 0.42% Mako 0.05% Dockerfile 0.11%

pandas-ai's Introduction

PandasAI

Release CI CD Coverage Discord Downloads License: MIT Open in Colab

PandasAI is a Python platform that makes it easy to ask questions to your data in natural language. It helps non-technical users to interact with their data in a more natural way, and it helps technical users to save time and effort when working with data.

๐Ÿš€ Deploying PandasAI

PandasAI can be used in a variety of ways. You can easily use it in your Jupyter notebooks or streamlit apps, or you can deploy it as a REST API such as with FastAPI or Flask.

If you are interested in the managed PandasAI Cloud or our self-hosted Enterprise Offering, take a look at our website or book a meeting with us.

๐Ÿ”ง Getting started

You can find the full documentation for PandasAI here.

You can either decide to use PandasAI in your Jupyter notebooks, streamlit apps, or use the client and server architecture from the repo.

โ˜๏ธ Using the platform

PandasAI platform

๐Ÿ“ฆ Installation

PandasAI platform is uses a dockerized client-server architecture. You will need to have Docker installed in your machine.

git clone https://github.com/sinaptik-ai/pandas-ai/
cd pandas-ai
docker-compose build

๐Ÿš€ Running the platform

Once you have built the platform, you can run it with:

docker-compose up

This will start the client and server, and you can access the client at http://localhost:3000.

๐Ÿ“š Using the library

๐Ÿ“ฆ Installation

You can install the PandasAI library using pip or poetry.

With pip:

pip install pandasai

With poetry:

poetry add pandasai

๐Ÿ” Demo

Try out the PandasAI library yourself in your browser:

Open in Colab

๐Ÿ’ป Usage

Ask questions

import os
import pandas as pd
from pandasai import Agent

# Sample DataFrame
sales_by_country = pd.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})

# By default, unless you choose a different LLM, it will use BambooLLM.
# You can get your free API key signing up at https://pandabi.ai (you can also configure it in your .env file)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"

agent = Agent(sales_by_country)
agent.chat('Which are the top 5 countries by sales?')
China, United States, Japan, Germany, Australia

Or you can ask more complex questions:

agent.chat(
    "What is the total sales for the top 3 countries by sales?"
)
The total sales for the top 3 countries by sales is 16500.

Visualize charts

You can also ask PandasAI to generate charts for you:

agent.chat(
    "Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)

Chart

Multiple DataFrames

You can also pass in multiple dataframes to PandasAI and ask questions relating them.

import os
import pandas as pd
from pandasai import Agent

employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}

salaries_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Salary': [5000, 6000, 4500, 7000, 5500]
}

employees_df = pd.DataFrame(employees_data)
salaries_df = pd.DataFrame(salaries_data)

# By default, unless you choose a different LLM, it will use BambooLLM.
# You can get your free API key signing up at https://pandabi.ai (you can also configure it in your .env file)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"

agent = Agent([employees_df, salaries_df])
agent.chat("Who gets paid the most?")
Olivia gets paid the most.

You can find more examples in the examples directory.

๐Ÿ”’ Privacy & Security

In order to generate the Python code to run, we take some random samples from the dataframe, we randomize it (using random generation for sensitive data and shuffling for non-sensitive data) and send just the randomized head to the LLM.

If you want to enforce further your privacy you can instantiate PandasAI with enforce_privacy = True which will not send the head (but just column names) to the LLM.

๐Ÿ“œ License

PandasAI is available under the MIT expat license, except for the pandasai/ee directory (which has it's license here if applicable.

If you are interested in managed PandasAI Cloud or self-hosted Enterprise Offering, take a look at our website or book a meeting with us.

Resources

  • Docs for comprehensive documentation
  • Examples for example notebooks
  • Discord for discussion with the community and PandasAI team

๐Ÿค Contributing

Contributions are welcome! Please check the outstanding issues and feel free to open a pull request. For more information, please check out the contributing guidelines.

Thank you!

Contributors

pandas-ai's People

Contributors

gventuri avatar arslansaleem avatar mspronesti avatar nautics889 avatar henriqueajnb avatar jonbiemond avatar sandiemann avatar chengwaikoo avatar lorenzobattistela avatar johnson-52197 avatar oedokumaci avatar shahrukh802 avatar tanmaypatil123 avatar leehanchung avatar amjadraza avatar victor-hugo-dc avatar avelino avatar gaurang98671 avatar goriri avatar milind-sinaptik avatar kartheekyakkala avatar yzaparto avatar sourcery-ai[bot] avatar rekwet avatar mintlify[bot] avatar kukushking avatar dsupertramp avatar yassinkortam avatar dudesparsh avatar pavelagurov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.