怎么用 PandasAI 进行对话式数据分析?

科技   职场   2024-06-11 07:57   上海  
你好,我是林骥。
PandasAI 是一个能让数据分析变得更加有趣的库,它充分利用了 Pandas 的强大功能,并结合大型语言模型的优势,使得用户能够以日常对话的方式进行数据分析
例如,你问 PandasAI:

累计购买次数最多的客户是谁?

PandasAI 会直接告诉你答案,而不你用去写很多代码,也不用做一些繁琐的操作。

那么,具体应该怎么用 PandasAI 进行对话式的数据分析呢?
首先,你需要安装 PandasAI,如果你还没有安装的话,可以在数据分析环境的 Jupyter Notebook 中运行以下命令:
 !pip install pandasai
其次,用以下代码,引入智能数据框 SmartDataframe:
from pandasai import SmartDataframe
接下来,为了方便演示 PandasAI 的功能,我们模拟生成一些数据:
import numpy as npimport pandas as pdfrom faker import Faker
# 创建数据生成器fake = Faker('zh_CN')
# 设置随机种子以确保可重复的结果np.random.seed(0)fake.random.seed(0)
# 生成数据集data = { '客户姓名': [fake.name() for _ in range(100)], '性别': [fake.random.choice(['男', '女']) for _ in range(100)], '年龄': np.random.randint(18, 70, size=100), '所在省份': [fake.province() for _ in range(100)], '最近购买时间': [fake.date_between(start_date='-2y', end_date='today') for _ in range(100)], '累计购买次数': np.random.randint(1, 20, size=100), '累计购买金额': np.random.normal(loc=1000, scale=500, size=100)}
# 累计购买金额与累计购买次数的合理比例data["累计购买金额"] = [round(times * np.random.uniform(500, 800), 2) for times in data["累计购买次数"]]
# 创建 DataFramedf = pd.DataFrame(data)
你可以把数据替换为自己的数据,比如从 Excel 文件或数据库中读取数据。
然后,你可以开始调用大模型来分析数据。PandasAI 默认使用的大语言模型是 BambooLLM,你可以在 https://pandabi.ai 上用邮箱进行注册,免费获取你的 API 密钥,并复制到下面的代码中。
import osos.environ['PANDASAI_API_KEY'] = "把你的 API 密钥复制到这里"sdf = SmartDataframe(df)
现在,你就可以用自然语言与 PandasAI 进行对话式的数据分析,例如:
你还可以用下面的命令,把 PandasAI 最近执行的代码显示出来,确认它不是胡说八道,而是经过严格的数学计算。
print(sdf.last_code_generated)
需要注意的是:大模型生成的分析结果,虽然可以提供有价值的参考,但并非 100% 准确可靠。在实际应用中,我们需要加强验证,并对最终的结果负责。
你还可以让 PandasAI 帮你绘制图表,例如:
sdf.chat("请用直方图展示客户年龄分布")
因为中文字体的原因,此时系统可能会报错。
你可以把系统报错的信息发给 AI,例如:
参考 AI 提供的方法,稍微修改一下提示词:
sdf.chat("请用直方图展示客户年龄分布,\并用 plt.rcParams['font.sans-serif'] = ['SimHei']  来正常显示中文标签")
重新运行之后,正常情况下就能得到一张图表如下:
你甚至可以提出一些额外的要求,例如:
sdf.chat("请用直方图展示客户年龄分布,\并用 plt.rcParams['font.sans-serif'] = ['SimHei']  来正常显示中文标签,\上面的标题用 16 号字体。")
运行结果如下:
最后,你还可以按照自己的想法,提出自己的要求,只要你的意思表达清晰明确,PandasAI 通常都会给你相应的回答。例如:
sdf.chat("请对数据绘制相关性矩阵图,\并用 plt.rcParams['font.sans-serif'] = ['SimHei']  来正常显示中文标签")
运行结果如下:
总之,PandasAI 能够从日常对话中,智能识别用户的意图,并生成相应的数据分析结果,帮助我们更加高效地处理和分析数据。
如果你想了解更多与 AI 数据分析相关的应用案例,比如:怎么用 AI 批量处理数据文件?怎么用 PandasAI 快速分析多个数据?怎么 PandasAI 连接数据库?…… 
欢迎你的订阅我的专栏:数据化分析案例库,其中已经更新了 20 个案例,计划至少更新 100 个案例,限时优惠价 28 元。
随着案例的增加,该专栏将会逐渐涨价,6.18 之后价格将上涨至 58 元,满 100 个案例后将涨价至 280 元,但现在订阅还可以享受特别优惠价 28 元。

↑ 点击此卡片关注 ↑

↑ 周二早八点阅读 

林骥
《数据化分析》作者,从事数据分析工作 16 年,致力于用数据化解难题,让分析更加有效。
 最新文章