# PandasAI ð¼
[![Release](https://img.shields.io/pypi/v/pandasai?label=Release&style=flat-square)](https://pypi.org/project/pandasai/)
[![CI](https://github.com/gventuri/pandas-ai/actions/workflows/ci.yml/badge.svg)](https://github.com/gventuri/pandas-ai/actions/workflows/ci.yml/badge.svg)
[![CD](https://github.com/gventuri/pandas-ai/actions/workflows/cd.yml/badge.svg)](https://github.com/gventuri/pandas-ai/actions/workflows/cd.yml/badge.svg)
[![Coverage](https://codecov.io/gh/gventuri/pandas-ai/branch/main/graph/badge.svg)](https://codecov.io/gh/gventuri/pandas-ai)
[![Documentation Status](https://readthedocs.org/projects/pandas-ai/badge/?version=latest)](https://pandas-ai.readthedocs.io/en/latest/?badge=latest)
[![Discord](https://dcbadge.vercel.app/api/server/kF7FqH2FwS?style=flat&compact=true)](https://discord.gg/kF7FqH2FwS)
[![Downloads](https://static.pepy.tech/badge/pandasai)](https://pepy.tech/project/pandasai) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Open in Colab](https://camo.githubusercontent.com/84f0493939e0c4de4e6dbe113251b4bfb5353e57134ffd9fcab6b8714514d4d1/68747470733a2f2f636f6c61622e72657365617263682e676f6f676c652e636f6d2f6173736574732f636f6c61622d62616467652e737667)](https://colab.research.google.com/drive/1rKz7TudOeCeKGHekw7JFNL4sagN9hon-?usp=sharing)
PandasAI is a Python library that adds Generative AI capabilities to [pandas](https://github.com/pandas-dev/pandas), the popular data analysis and manipulation tool. It is designed to be used in conjunction with pandas, and is not a replacement for it.
<!-- Add images/pandas-ai.png -->
![PandasAI](images/pandas-ai.png?raw=true)
## ð§ Quick install
```bash
pip install pandasai
```
## ð Demo
Try out PandasAI in your browser:
[![Open in Colab](https://camo.githubusercontent.com/84f0493939e0c4de4e6dbe113251b4bfb5353e57134ffd9fcab6b8714514d4d1/68747470733a2f2f636f6c61622e72657365617263682e676f6f676c652e636f6d2f6173736574732f636f6c61622d62616467652e737667)](https://colab.research.google.com/drive/1rKz7TudOeCeKGHekw7JFNL4sagN9hon-?usp=sharing)
## ð Documentation
The documentation for PandasAI can be found [here](https://pandas-ai.readthedocs.io/en/latest/).
## ð» Usage
> Disclaimer: GDP data was collected from [this source](https://ourworldindata.org/grapher/gross-domestic-product?tab=table), published by World Development Indicators - World Bank (2022.05.26) and collected at National accounts data - World Bank / OECD. It relates to the year of 2020. Happiness indexes were extracted from [the World Happiness Report](https://ftnnews.com/images/stories/documents/2020/WHR20.pdf). Another useful [link](https://data.world/makeovermonday/2020w19-world-happiness-report-2020).
PandasAI is designed to be used in conjunction with pandas. It makes pandas conversational, allowing you to ask questions to your data in natural language.
### Queries
For example, you can ask PandasAI to find all the rows in a DataFrame where the value of a column is greater than 5, and it will return a DataFrame containing only those rows:
```python
import pandas as pd
from pandasai import PandasAI
# Sample DataFrame
df = pd.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"gdp": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064],
"happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]
})
# Instantiate a LLM
from pandasai.llm.openai import OpenAI
llm = OpenAI(api_token="YOUR_API_TOKEN")
pandas_ai = PandasAI(llm)
pandas_ai(df, prompt='Which are the 5 happiest countries?')
```
The above code will return the following:
```
6 Canada
7 Australia
1 United Kingdom
3 Germany
0 United States
Name: country, dtype: object
```
Of course, you can also ask PandasAI to perform more complex queries. For example, you can ask PandasAI to find the sum of the GDPs of the 2 unhappiest countries:
```python
pandas_ai(df, prompt='What is the sum of the GDPs of the 2 unhappiest countries?')
```
The above code will return the following:
```
19012600725504
```
### Charts
You can also ask PandasAI to draw a graph:
```python
pandas_ai(
df,
"Plot the histogram of countries showing for each the gdp, using different colors for each bar",
)
```
![Chart](images/histogram-chart.png?raw=true)
You can save any charts generated by PandasAI by setting the `save_charts` parameter to `True` in the `PandasAI` constructor. For example, `PandasAI(llm, save_charts=True)`. Charts are saved in `./pandasai/exports/charts` .
### Multiple DataFrames
Additionally, you can also pass in multiple dataframes to PandasAI and ask questions relating them.
```python
import pandas as pd
from pandasai import PandasAI
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)
llm = OpenAI()
pandas_ai = PandasAI(llm)
pandas_ai([employees_df, salaries_df], "Who gets paid the most?")
```
The above code will return the following:
```
Oh, Olivia gets paid the most.
```
You can find more examples in the [examples](examples) directory.
### â¡ï¸ Shortcuts
PandasAI also provides a number of shortcuts (beta) to make it easier to ask questions to your data. For example, you can ask PandasAI to `clean_data`, `impute_missing_values`, `generate_features`, `plot_histogram`, and many many more.
```python
# Clean data
pandas_ai.clean_data(df)
# Impute missing values
pandas_ai.impute_missing_values(df)
# Generate features
pandas_ai.generate_features(df)
# Plot histogram
pandas_ai.plot_histogram(df, column="gdp")
```
Learn more about the shortcuts [here](https://pandas-ai.readthedocs.io/en/latest/shortcuts/).
## ð Privacy & Security
In order to generate the Python code to run, we take the dataframe head, we randomize it (using random generation for sensitive data and shuffling for non-sensitive data) and send just the head.
Also, 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.
## âï¸ Command-Line Tool
Pai is the command line tool designed to provide a convenient way to interact with PandasAI through a command line interface (CLI). In order to access the CLI tool, make sure to create a virtualenv for testing purpose and to install project dependencies in your local virtual environment using `pip` by running the following command:
Read more about how to use the CLI [here](https://pandas-ai.readthedocs.io/en/latest/pai_cli/).
## ð¤ Contributing
Contributions are welcome! Please check out the todos below, and feel free to open a pull request.
For more information, please see the [contributing guidelines](CONTRIBUTING.md).
After installing the virtual environment, please remember to install `pre-commit` to be compliant with our standards:
```bash
pre-commit install
```
## Contributors
[![Contributors](https://contrib.rocks/image?repo=gventuri/pandas-ai)](https://github.com/gventuri/pandas-ai/graphs/contributors)
## ð License
PandasAI is licensed under the MIT License. See the LICENSE file for more details.
## Acknowledgements
- This project is based on the [pandas](https://github.com/pandas-dev/pandas) library by independent contributors, but it's in no way affiliated with the pandas project.
- This project is meant to be used as a tool for data exploration and analysis, and it's not meant to be used for production purposes. Please use it responsibly.
程序员Chino的日记
- 粉丝: 3731
- 资源: 5万+
最新资源
- Matlab四旋翼无人机ADRC姿态控制器仿真,已调好,附带相关参考文献~ 无人机姿态模型,力矩方程,角运动方程 包含三个姿态角的数学模型,以及三个adrc控制器 简洁易懂,也可自行替其他控制器
- 新能源动力电池电芯支架组合压紧机sw21可编辑全套技术资料100%好用.zip
- 电镀生产线西门子博途PLC程序 酸洗纯化干燥线
- 【c#】基于C#开发的天蓝蓝(aikaobukao)考试管理系统_pgj.zip
- 【C#】基于C#+ASP.NetCore实现的在线考试系统,数据库操作使用EnityFrameworkCore框架_pgj.zip
- 【C语言】2019年南航计算机学院操作系统课程的实验代码-实验心得-上机考试练习-笔试复习笔记_pgj.zip
- 【go语言】《Go语言四十二章经》详细讲述Go语言规范与语法细节及开发中常见的误区_pgj.zip
- 车用驱动电机原理与控制基础-P144公式(6-50)
- 非线性磁链观测器Simulink仿真模型(2020b版本) 1. 该模型与先前发布的非线性磁链观测器代码一一对应,拥有仿真模型可以做到指导工程调试
- 【Golang设计模式】使用Golang泛型实现的设计模式(大话设计模式)_pgj.zip
- 【go语言】golang钉钉机器人客户端支持文本、链接、Markdown、ActionCard、FeedCard类型消息的发送_pgj.zip
- 【java】QQ官方机器人Java-JVM-kotlinSDKQQbotsdkqq机器人sdk_pgj.zip
- 【java】ssm+jsp+mysql+LD算法在线考试系统_pgj.zip
- 【java】分布式事务基于rabbitmq二阶段提交实现_pgj.zip
- 【java】基于java+SSM-考试系统_pgj.zip
- 【java】大三软工课设,在线考试系统后端部分_pgj.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈