Home 【教程】0元购,用大模型做数据分析,可视化.md
Post
Cancel

【教程】0元购,用大模型做数据分析,可视化.md

⚠️ 对代码感兴趣,直接拉到文末

大家好,我是章北海

最近在外面冲浪看到@eviljer分享了 DeepSeek Coder 一步到位做数据分析的玩法。

我复刻后试了一下,确实很爽

只需要塞进去 excel,==告诉它分析哪些指标,自动生成代码,自动执行==,输出可视化图表

原文使用 DeepSeek 官方 API,我冲了 1 元钱,跑一次只需要花费 1 分钱

如果一分钱都不想花呢?

我注册了 siliconflow,免费赠送 14 元(即约 2000 万 Qwen1.5-14B 模型 tokens,或 500 张图片)

注册地址:https://cloud.siliconflow.cn?referrer=cly7ai3ir000jqab7qaqp0qwf

它不但完美支持OpenAI API调用,还可以免费使用Qwen、GLM、Yi 等模型。

上面演示的自动数据分析、可视化,我是用的是DeepSeek-Coder-V2

这个模型我测试了,非常好用

DeepSeek-Coder-V2:第一个开源模型在编码和数学方面击败了 GPT4-Turbo

在编码和数学方面表现出色,击败了 GPT4-Turbo、Claude3-Opus、Gemini-1.5Pro、Codestral。

支持 338 种编程语言和 128K 上下文长度。

完全开源,有两种尺寸:230B(也具有 API 访问权限)和 16B。

回归正题,如何实现自动生成代码,自动执行,输出可视化图表?

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import re
import pandas as pd
from openai import OpenAI

# 读取 CSV 数据
#file_path = "/Users/zz/Desktop/demo.csv"
file_path = "替换成自己的 csv 文件路径"
mydata = pd.read_csv(file_path)

# 打印数据类型和表头
data_info = mydata.dtypes.to_dict()
data_columns = mydata.columns.tolist()
print("Data columns and types:", data_info)

api_key = "sk-替换成自己的 api"

# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key=api_key, base_url="https://api.siliconflow.cn/v1")

# 构造请求信息
messages = [
    {"role": "system", "content": "You are a helpful assistant.\n Based on the dataset user provided, do not assume.\n Think step by step, \nUse Markdown to format the output."},
    {"role": "user", "content": f"根据接收的数据字段和类型:{data_info}, CSV 路径:{file_path}, 1、用 plotly 图表分析内容标题,做个阅读超过 1000 点文章排行;2、对排名前五的文章做描述性分析,选用适当的图表进行可视化;3、分析哪些文章阅读情况比较良好;4、分别帮我找出阅读后关注人数、送达阅读率、首次分享率前五的文章名;注意:直接给我最终代码即可,不要写注释"}
]

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-Coder-V2-Instruct",
    messages=messages,
    stream=False
)

response_code=response.choices[0].message.content
code_blocks = re.findall(r'```(.*?)```',response_code,re.DOTALL)
cleaned_code_blocks = [code.replace("python\n","") for code in code_blocks]

for code in cleaned_code_blocks:
    exec(code)

粘贴到Jupyter NoteBook,替换file_path、api_key成自己的,修改 messages 中你想让大模型做的数据分析任务,执行即可。

如果你有别的大模型的 api,这套代码依然适用,额外替换一下base_url、model即可

This post is licensed under CC BY 4.0 by the author.