From d17580023c73b1f8951f90983d846f086efdf146 Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 11:13:13 -0300 Subject: [PATCH 1/7] fixing readme example to use real data --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b72e40abd..25348619e 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ pip install pandasai ## 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 about your data and get answers back, in the form of Pandas DataFrames. 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 @@ -34,8 +36,8 @@ from pandasai import PandasAI # Sample DataFrame df = pd.DataFrame({ "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"], - "gdp": [21400000, 2940000, 2830000, 3870000, 2160000, 1350000, 1780000, 1320000, 516000, 14000000], - "happiness_index": [7.3, 7.2, 6.5, 7.0, 6.0, 6.3, 7.3, 7.3, 5.9, 5.0] + "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 @@ -49,11 +51,11 @@ pandas_ai.run(df, prompt='Which are the 5 happiest countries?') The above code will return the following: ``` -0 United States 6 Canada 7 Australia 1 United Kingdom 3 Germany +0 United States Name: country, dtype: object ``` From bc955f9f8b55977a36ed50b0013d6162204c753e Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 13:27:16 -0300 Subject: [PATCH 2/7] update readme with gdp sum result --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25348619e..5eca62610 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ pandas_ai.run(df, prompt='What is the sum of the GDPs of the 2 unhappiest countr The above code will return the following: ``` -14516000 +19012600725504 ``` You can also ask PandasAI to draw a graph: From 997e52a5ef3935f6753db93048827d9bc0fb176e Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 13:27:24 -0300 Subject: [PATCH 3/7] replace histogram chart image --- images/histogram-chart.png | Bin 25505 -> 25674 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/histogram-chart.png b/images/histogram-chart.png index 93bb2e8c6078d9e836ee875ea19bfbf0a81f467d..0d6447b1e9d0863acac96e198b0bcd5eb3b9e8fd 100644 GIT binary patch literal 25674 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

egcCq*m+ltB@3ca+}+H=YAW8o1Uhp;KmI= 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 GLK6Ve%Ok*zIUY2c3n<(0d|U_ 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 L?b>&>Y(oAIO#a84 From a27797b04fe8a4bdbdff6391c066024d6c35ebfa Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 13:34:48 -0300 Subject: [PATCH 4/7] replacing sample dataframe with realistic data (same on readme) --- examples/data/sample_dataframe.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/data/sample_dataframe.py b/examples/data/sample_dataframe.py index e9eeabb57..bcf9698f6 100644 --- a/examples/data/sample_dataframe.py +++ b/examples/data/sample_dataframe.py @@ -11,19 +11,19 @@ "Canada", "Australia", "Japan", - "China", + "China" ], "gdp": [ - 21400000, - 2940000, - 2830000, - 3870000, - 2160000, - 1350000, - 1780000, - 1320000, - 516000, - 14000000, + 19294482071552, + 2891615567872, + 2411255037952, + 3435817336832, + 1745433788416, + 1181205135360, + 1607402389504, + 1490967855104, + 4380756541440, + 14631844184064 ], - "happiness_index": [7.3, 7.2, 6.5, 7.0, 6.0, 6.3, 7.3, 7.3, 5.9, 5.0], -} + "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12], +} \ No newline at end of file From 2ce1e0dabe9ecc3f46b53459badac8280a53ae32 Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 13:36:31 -0300 Subject: [PATCH 5/7] fix value of the sum of gdp of north american countries --- examples/from_dataframe.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/from_dataframe.py b/examples/from_dataframe.py index 3409d083e..4b89101e3 100644 --- a/examples/from_dataframe.py +++ b/examples/from_dataframe.py @@ -11,4 +11,4 @@ pandas_ai = PandasAI(llm, verbose=True, conversational=False) response = pandas_ai.run(df, "Calculate the sum of the gdp of north american countries") print(response) -# Output: 26200000 +# Output: 20901884461056 From cc532fd65e086285e6fa39bb649b1948802ef2d2 Mon Sep 17 00:00:00 2001 From: Lorenzobattistela Date: Wed, 3 May 2023 13:37:12 -0300 Subject: [PATCH 6/7] fix sum of privacy enforced example --- examples/with_privacy_enforced.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/with_privacy_enforced.py b/examples/with_privacy_enforced.py index 3efbbcbd1..c3851d630 100644 --- a/examples/with_privacy_enforced.py +++ b/examples/with_privacy_enforced.py @@ -14,4 +14,4 @@ "Calculate the sum of the gdp of north american countries", ) print(response) -# Output: 26200000 +# Output: 20901884461056 From fd53b9c156d22c38c1e0bf182f9cb10f73a5a1e9 Mon Sep 17 00:00:00 2001 From: Gabriele Venturi Date: Thu, 4 May 2023 14:49:13 +0200 Subject: [PATCH 7/7] chore: fix linting error --- examples/data/sample_dataframe.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/data/sample_dataframe.py b/examples/data/sample_dataframe.py index bcf9698f6..c41878d89 100644 --- a/examples/data/sample_dataframe.py +++ b/examples/data/sample_dataframe.py @@ -11,7 +11,7 @@ "Canada", "Australia", "Japan", - "China" + "China", ], "gdp": [ 19294482071552, @@ -23,7 +23,7 @@ 1607402389504, 1490967855104, 4380756541440, - 14631844184064 + 14631844184064, ], "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12], -} \ No newline at end of file +}