【华为开发者空间 x DeepSeek】大模型当 Excel 插件!零代码做体检/支出透视表,60 分钟学会“嘴遁”数据分析
华为开发者空间介绍
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
免费领取开发者空间云主机
案例介绍
案例介绍
1. 概述
1.1 背景介绍
随着科技的不断进步,大模型技术在各领域展现出巨大的应用潜力。在表格处理和数据分析方面,借助大模型能够实现更高效、精准的操作。本次案例将围绕基于大模型技术进行表格处理/数据分析展开,通过实际操作演示,助力大家掌握相关技能,无论是企业处理大量业务数据,还是个人开发者和高校学生应对学习、研究中的数据问题,都能从中受益,轻松搭建专属服务。
1.2 适用对象
企业、个人开发者、高校学生。
1.3 案例时间
本案例总时长预计60分钟。
1.4 案例流程
- 基于大模型技术进行表格处理/数据分析的案例
- 提示词工程介绍
- 使用ollama启动模型服务
- 在cherry studio中接入本地的ollama服务的deepseek模型
- 在cherry studio中上传要处理、分析的表格
- 在 cherry studio 中进行提示词工程,处理和分析表格数据
1.5 资源总览
本案例预计花费总计0元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 云主机 | ARM | 4C8G | Ubuntu | 免费 | 60 |
1.6 华为开发者空间介绍
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机(点击免费领取)、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
2. 操作步骤
2.1 安装Ollama
在云主机桌面右键选择“Open Terminal Here”,打开命令终端窗口,输入:
curl -fsSL https://ollama.com/install.sh | sh

安装完成后验证是否成功安装:
ollama --version
2.2 下载运行DeepSeekR1
使用 Ollama 下载 DeepSeek R1 模型:
ollama pull deepseek-r1:1.5b
然后启动模型:
ollama run deepseek-r1:1.5b

默认API地址:
http://ip:11434/v1/
2.3 安装Cherry Studio并调用 DeepSeek API
下载地址:

到对应的目录下面进行先赋予权限,然后运行
chmod +x Cherry-Studio-1.2.10-arm64.AppImage
./Cherry-Studio-1.2.10-arm64.AppImage --no-sandbox --disable-gpu
2.4 配置Cherry Studio 访问 DeepSeek API
进入设置进行配置API地址:

然后点击添加输入如下:deepseek-r1:1.5b

修改默认模型均为deepseek-r1:1.5b | Ollama
3. 在cherry studio中上传要处理和分析的表格
打开cherry studio,然后进行文档的拖拽式上传

测试是否上传成功:

4. 处理上传的文档和分析的表格
4.1 案例1,不同提示词的处理效果
表格内容为:
| 居民ID | 姓名 | 年龄 | 性别 | 血压(mmHg) | 血糖(mmol/L) | 胆固醇(mmol/L) | BMI | 健康风险等级 | 建议项目 |
|---|---|---|---|---|---|---|---|---|---|
| CQ1001 | 王建国 | 52 | 男 | 142/92 | 6.8 | 5.9 | 28.4 | 中风险 | 心血管专项检查 |
| CQ1002 | 李淑芬 | 67 | 女 | 130/85 | 5.1 | 4.8 | 23.1 | 低风险 | 骨密度检测 |
| CQ1003 | 张建军 | 48 | 男 | 158/102 | 9.2 | 6.7 | 31.6 | 高风险 | 糖尿病管理门诊 |
| CQ1004 | 陈晓梅 | 59 | 女 | 145/88 | 7.5 | 5.3 | 26.9 | 中风险 | 饮食干预计划 |
| CQ1005 | 赵志强 | 71 | 男 | 122/79 | 5.8 | 4.5 | 22.7 | 低风险 | 年度常规复查 |
提问一:赵志强的血压是多少
提问二:血压最高的是多少,是谁
提问三:其中每一项最高值都分别是什么
总结:体检数据分析交互评估
- 提示词精准度
-
第二个问题(“血压最高是多少,是谁”)要求明确聚焦单一指标(血压)的极值定位,指令简洁无歧义:
-
关键要素完整:明确目标指标(血压)、计算要求(最高值)、返回对象(人员信息)。
-
无冗余信息:未引入无关字段(如年龄、血糖),避免干扰核心任务。
-
- 模型的上下文理解能力
-
跨问题继承计算逻辑:
-
上文(血压极值分析)已激活极值定位算法(遍历比较数值列),当第三个问题(“每一项最高值”)扩展为全字段极值分析时:
-
直接复用遍历比较逻辑,无缝切换至多指标(年龄、血压、血糖等)。
-
自动继承结构化输出范式(分项说明+汇总表格)。
-
-
-
动态关联健康洞察:
- 基于前文对“高风险”标签的解读经验(如张建军血压/血糖超标),在输出最高值时主动关联健康风险提示(例:张建军5项指标最高,需重点关注)。
4.2 案例2,开支明细表
表格内容为:
| 具体项目 | 金额(元) | 支付方式 | 购买地点 |
|---|---|---|---|
| 超市购物 | 286.5 | 支付宝 | 永辉超市 |
| 钢琴课学费 | 800 | 银行转账 | 艺术培训中心 |
| 夏季连衣裙 | 299 | 微信支付 | 优衣库 |
| 水电燃气费 | 327.9 | 自动扣款 | 支付宝生活缴费 |
| 必胜客披萨 | 128 | 美团支付 | 美团外卖 |
| 汽油费 | 300 | 中石化APP | 加油站 |
| 电影院《沙丘2》 | 136 | 淘票票 | 万达影城 |
| 感冒药+维生素 | 78 | 医保卡 | 同仁堂药店 |
| 猫粮+猫砂 | 195 | 京东白条 | 京东到家 |
| 朋友结婚红包 | 500 | 现金 | 婚礼现场 |
计算各类支出
具体回复:
计算各类支出的分类统计需要将支出项目映射到对应类别,并按类别分组计算了总金额、消费次数和平均金额三项关键统计指标。
以下是一个示例代码:
import pandas as pd
def calculate_expense_stats():
# 创建DataFrame (代替读取CSV)
data = {
'具体项目': ['超市购物', '钢琴课学费', '夏季连衣裙', '水电燃气费', '必胜客披萨',
'汽油费', '电影院《沙丘2》', '感冒药+维生素', '猫粮+猫砂', '朋友结婚红包'],
'金额(元)': [286.5, 800, 299, 327.9, 128, 300, 136, 78, 195, 500],
'支付方式': ['支付宝', '银行转账', '微信支付', '自动扣款', '美团支付',
'中石化APP', '淘票票', '医保卡', '京东白条', '现金'],
'购买地点': ['永辉超市', '艺术培训中心', '优衣库', '支付宝生活缴费', '美团外卖',
'加油站', '万达影城', '同仁堂药店', '京东到家', '婚礼现场']
}
df = pd.DataFrame(data)
# 创建支出类别映射
category_map = {
'食品杂货': ['超市购物'],
'教育': ['钢琴课学费'],
'服装': ['夏季连衣裙'],
'公用事业': ['水电燃气费'],
'餐饮外卖': ['必胜客披萨'],
'交通': ['汽油费'],
'娱乐': ['电影院《沙丘2》'],
'医疗健康': ['感冒药+维生素'],
'宠物': ['猫粮+猫砂'],
'礼物': ['朋友结婚红包']
}
# 为每个项目添加分类
def map_category(item):
for category, items in category_map.items():
if item in items:
return category
return '其他'
df['支出类别'] = df['具体项目'].apply(map_category)
# 按类别分组统计
stats = df.groupby('支出类别')['金额(元)'].agg(['sum', 'count', 'mean'])
stats = stats.rename(columns={
'sum': '总金额(元)',
'count': '消费次数',
'mean': '平均金额(元)'
})
return stats
# 执行并打印结果
results = calculate_expense_stats()
print("支出分类统计结果:")
print(results)
print("\n总支出金额:", results['总金额(元)'].sum())
可以看出,分类键名不太正确,我们需使用正确的分类键名,然后运行代码:
import pandas as pd
def calculate_expense_stats():
# 创建DataFrame (代替读取CSV)
data = {
'具体项目': ['超市购物', '钢琴课学费', '夏季连衣裙', '水电燃气费', '必胜客披萨',
'汽油费', '电影院《沙丘2》', '感冒药+维生素', '猫粮+猫砂', '朋友结婚红包'],
'金额(元)': [286.5, 800, 299, 327.9, 128, 300, 136, 78, 195, 500],
'支付方式': ['支付宝', '银行转账', '微信支付', '自动扣款', '美团支付',
'中石化APP', '淘票票', '医保卡', '京东白条', '现金'],
'购买地点': ['永辉超市', '艺术培训中心', '优衣库', '支付宝生活缴费', '美团外卖',
'加油站', '万达影城', '同仁堂药店', '京东到家', '婚礼现场']
}
df = pd.DataFrame(data)
# 创建支出类别映射
category_map = {
'食品杂货': ['超市购物'],
'教育': ['钢琴课学费'],
'服装': ['夏季连衣裙'],
'公用事业': ['水电燃气费'],
'餐饮外卖': ['必胜客披萨'],
'交通': ['汽油费'],
'娱乐': ['电影院《沙丘2》'],
'医疗健康': ['感冒药+维生素'],
'宠物': ['猫粮+猫砂'],
'礼物': ['朋友结婚红包']
}
# 为每个项目添加分类
def map_category(item):
for category, items in category_map.items():
if item in items:
return category
return '其他'
df['支出类别'] = df['具体项目'].apply(map_category)
# 按支出类别分组统计 - 使用正确的分类键名
stats = df.groupby('支出类别').agg({
'金额(元)': ['mean', 'sum', 'count'],
'支付方式': lambda x: ', '.join(set(x)) # 显示该类别使用的支付方式
})
# 重命名列名使其更清晰
stats.columns = ['平均金额', '总金额', '消费次数', '支付方式汇总']
# 添加占总支出百分比
stats['占比(%)'] = (stats['总金额'] / stats['总金额'].sum() * 100).round(1)
return stats.sort_values('总金额', ascending=False)
# 执行并打印结果
print("支出分类统计结果:")
results = calculate_expense_stats()
print(results)
print("\n总支出金额:", results['总金额'].sum())
至此,本案例全部内容完成
更多推荐



所有评论(0)