前言
小浣熊家族给出了两种智能助手分类,分别是【代码小助手】和【办公小助手】两类,两个工具我都测试了,其中代码小助手都是基础程序员的编码来拓展功能的,使用范围是有限,我今天给大家主要推荐一下【办公小浣熊】,因为完全不需要代码,只是平时的基础 Excel 数据,可以在主页图片中看到他是支持【JSON】【Excel】【CSV】三类文件,我们办公中使用的最多的就是 Excel,是谁都是使用到的,就算是后端人员要给非技术人员做数据展示依然得用 Excel,数据这里后端人可以把数据从 MySQL 数据库导出来,这里导出可以直接以 Excel 的格式导出,进行画图表,做分析,看趋势等操作,基于这个前提所以我这里主要对【办公小浣熊】来做详细测评。
小浣熊主页:https://raccoon.sensetime.com/
代码小浣熊主页:https://raccoon.sensetime.com/code
办公小浣熊主页:https://raccoon.sensetime.com/office
小浣熊智能助手
【小浣熊家族】是基于商汤大语言模型打造的 AI Native 生产力系列工具,覆盖软件开发、数据分析、编程教育等多个场景,旨在通过先进的人工智能技术优化和提升工作效率。家族现已推出代码小浣熊和办公小浣熊两位成员,为十余万用户提供数亿次智能辅助服务。
代码小助手
【代码小浣熊】是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节,满足用户代码编写、编程学习等各类需求。代码小浣熊支持 Python、Java、JavaScript、C++、Go、SQL 等 90+主流编程语言和 VS Code、IntelliJ IDEA 等主流 IDE。在实际应用中,代码小浣熊可帮助开发者提升编程效率超 50%。
办公小浣熊
【办公小浣熊】是基于商汤大语言模型的大模型原生数据分析产品,可通过用户的自然语言输入,自动将数据转化为有意义的分析和可视化结果。办公小浣熊支持复杂表格、多表格、多文件的理解,可以完成数据清洗、数据运算、比较分析、趋势分析,预测性分析、可视化等常见数据分析任务,赋能财务分析、商业分析、销售预测、市场分析、宏观分析等多个应用场景。
本期分析主题
本期我这里准备了 6795 行的比较混乱的历史人物数据,看看是否能帮着分析一下,分析出我们想要的一些结果。
MySQL 数据导出为 Excel
数据都是来自于数据库,方便与后端人员提供数据给前端做数据展示的同士小伙伴。
毕竟后端的小伙伴语言描述能力与绘画能力肯定弱一些,但是有了小浣熊就能帮着解决一些了。
导出完毕,文件大小为 12M,已经是不小的 Excel 文件了,我们看看小浣熊的能力。
办公小浣熊面板介绍
下图中有完整的办公小浣熊面板介绍,这里我介绍的是免费的功能,虽然都是免费的但是能完成我们平时工作的绝大多数功能,已经非常人性化了。
文件预览功能
这个功能就很贴心,其实来回切换屏幕是很伤眼睛的,这样就免去了来回切换观察数据的问题,所以我用了很贴心的这个词,关注大家身心健康,就很美。
默认人设
这个人设当前有 2 个选项。我们选择【数据分析工程师】
选项:
这样会更好的帮助我们做数据分析。
数据分析提问
到了实际操作的部分,那么我们接下来进行连续的多次提问吧。毕竟如果刚拿到这个 Excel 都得做最初的数据分析,我比较懒,这个活也直接交给了【办公小浣熊】来完成。
1、数据结构分析——数据分析背景
提问:
当前的数据表乱,帮我分析一下那些列数据较为有价值,给我一个回馈。
反馈结果:
根据提供的数据,我们可以看到数据表中包含多个列,其中一些列包含关于个体的信息,而其他列则包含关于数据记录本身的信息。以下是我对每列的简要分析:
id: 唯一标识符,对于区分不同的记录很重要。
belong_to_dynasty_id 和 belong_to_dynasty_name: 表示个体所属的朝代,这对于历史分析可能很有价值。
name 和 alias: 个体的名字和别名,这是基本的个人信息。
nationality: 国籍信息,可以提供个体的地理背景。
nation: 民族信息,可以提供个体的文化背景。
birth_date 和 death_date: 出生和死亡日期,可以用于分析个体的生命周期。
profession: 职业信息,可以提供个体的社会地位和经济背景。
status, pinyin, article_num, weigh, is_m_baidu, is_pc_baidu, rank: 这些列包含一些可能与数据记录的元数据或外部链接有关的信息。
created_at 和 updated_at: 数据记录的创建和更新时间,可以用于跟踪数据的历史。
source_url: 数据来源的 URL,可以用于验证数据的来源。
第一问结果分析:
第一步在反馈的结果中我们可以看到 10 列信息给出的具体描述,这是非常直接的结果,是将所有有用的数据列信息整理后给出的结论,原本的列数是有 28 列的。如果后端人员给的数据没有列注释我们就很难进行数据分析了,有了【办公小浣熊】给出的结果就能清晰的找寻出我们的目标。
2、默认给出问题提示
当完全是一个新手的时候,【办公小浣熊】会给出一定的操作提示,您甚至可以连续的点击提问。
点击尝试:
结果分析:
反馈结果中给了实际代码,这里无需自己运行,系统会自动后台运行后返回结果:
# 1. 数据概览
data_overview = {
"行数": data.shape[0],
"列数": data.shape[1],
"列名": data.columns.tolist()
}
# 2. 缺失值分析
missing_values = data.isnull().sum().to_dict()
# 3. 数据类型分析
data_types = data.dtypes.to_dict()
# 4. 唯一值分析
unique_values = data.nunique().to_dict()
# 5. 基本统计分析
basic_statistics = data.describe(include='all').to_dict()
# 6. 数据质量评估
# 这里我们将基于缺失值和唯一值来评估数据质量
data_quality = {
"缺失值比例": {col: (missing_values[col] / data.shape[0]) * 100 for col in data.columns},
"唯一值比例": {col: (unique_values[col] / data.shape[0]) * 100 for col in data.columns}
}
复制代码
六项数据分析结果:
数据概览:简要描述数据集的总体情况,包括行数和列数。
缺失值分析:分析每个列的缺失值情况。
数据类型分析:分析每个列的数据类型。
唯一值分析:分析每个列的唯一值数量,以了解数据的多样性。
基本统计分析:对数值型列进行基本的统计分析,包括平均值、中位数、最小值和最大值等。
数据质量评估:基于上述分析,对数据的质量进行评估。
我们可以根据这些提示进行下一步的数据分析,当然也可以自定义进行提问。
3、自由提问——分析目标
这里设定为初次提问,不懂怎么问,也没有做任何限制,目的是看【办公小浣熊】的 AI 能力。
问题:
请做一个历史人物数据量与时间的合理展示图。
结果反馈:
这是一个展示各个世纪历史人物数量的图表。每个柱状图代表一个世纪,高度表示该世纪中历史人物的数量。
请注意,由于某些历史人物的出生或死亡日期可能没有记录或无法解析,因此这些数据可能没有包括在内。
代码:
import matplotlib.pyplot as plt
import numpy as np
# Convert 'birth_date' and 'death_date' to datetime format
df['birth_date'] = pd.to_datetime(df['birth_date'], errors='coerce')
df['death_date'] = pd.to_datetime(df['death_date'], errors='coerce')
# Drop rows where both 'birth_date' and 'death_date' are NaT (Not a Time)
df.dropna(subset=['birth_date', 'death_date'], how='all', inplace=True)
# Create a column to store the century in which each historical figure lived
df['living_century'] = (df['birth_date'].dt.year // 100) + 1
# Count the number of historical figures in each century
century_counts = df['living_century'].value_counts().sort_index()
# Create the plot
plt.figure(figsize=(12, 6))
plt.bar(century_counts.index, century_counts.values, color='skyblue')
plt.xlabel('Century')
plt.ylabel('Number of Historical Figures')
plt.title('Number of Historical Figures by Century')
plt.grid(True)
# Annotate each bar with the number of historical figures
for i, count in enumerate(century_counts):
plt.text(i, count, str(count), ha='center', va='bottom')
plt.show()
复制代码
图片效果:
问题:
这里没有做任何限制,反馈的图片信息竟然也都是英文的 title,所以我们需要加上一些限制。
4、添加提问约束——分析思路
问题:
1、请将所有的人物按照时间跨度进行合理的划分并记录数量
2、所有显示的文字需要使用中文进行备注,并写明数据单位。
3、根据实际情况选择饼图、散点图、折线图或者漏斗图等进行展示。
4、返回的图片需要高清处理。
反馈结果(全):
好的,我将按照您的要求进行操作:
将所有的历史人物按照他们的生活时间跨度(例如,19 世纪、20 世纪等)进行分类,并记录每个分类中的人物数量。
在图表中使用中文进行注释,并标明数据单位。
根据数据的特点选择合适的图表类型进行展示。
生成高清晰度的图片。
让我们开始吧。
# Create a new column to represent the time span in which each historical figure lived
# For example, if the 'birth_date' is 1850 and 'death_date' is 1920, the time span would be '19th Century'
def get_time_span(row):
birth_century = (row['birth_date'].dt.year // 100) + 1
death_century = (row['death_date'].dt.year // 100) + 1
# Handle cases where the death century is earlier than the birth century (due to data errors)
if death_century < birth_century:
death_century = birth_century
return f"{birth_century}th Century"
df['time_span'] = df.apply(get_time_span, axis=1)
# Count the number of historical figures in each time span
time_span_counts = df['time_span'].value_counts().sort_index()
# Create the plot
plt.figure(figsize=(14, 8))
plt.bar(time_span_counts.index, time_span_counts.values, color='skyblue')
plt.xlabel('时间跨度', fontsize=14)
plt.ylabel('历史人物数量', fontsize=14)
plt.title('不同时间跨度的历史人物数量', fontsize=16)
plt.grid(True)
# Annotate each bar with the number of historical figures
for i, count in enumerate(time_span_counts):
plt.text(i, count, str(count), ha='center', va='bottom', fontsize=12)
# Save the plot as a high-resolution image
plot_path = '/mnt/data/historical_figures_by_time_span_high_res.png'
plt.savefig(plot_path, dpi=300)
plt.show()
plot_path
复制代码
抱歉,似乎在处理数据时出现了一个错误。我将尝试修复这个问题并重新进行分析。
# Reload the DataFrame to reset any changes made during the previous attempt
df = pd.read_excel(file_path)
# Convert 'birth_date' and 'death_date' to datetime format again
df['birth_date'] = pd.to_datetime(df['birth_date'], errors='coerce')
df['death_date'] = pd.to_datetime(df['death_date'], errors='coerce')
# Drop rows where both 'birth_date' and 'death_date' are NaT (Not a Time)
df.dropna(subset=['birth_date', 'death_date'], how='all', inplace=True)
# Define the function to calculate the time span again
def get_time_span(row):
birth_century = (row['birth_date'].year // 100) + 1
death_century = (row['death_date'].year // 100) + 1
# Handle cases where the death century is earlier than the birth century (due to data errors)
if death_century < birth_century:
death_century = birth_century
return f"{birth_century}th Century"
# Apply the function to create the 'time_span' column
df['time_span'] = df.apply(get_time_span, axis=1)
# Count the number of historical figures in each time span
time_span_counts = df['time_span'].value_counts().sort_index()
# Create the plot again
plt.figure(figsize=(14, 8))
plt.bar(time_span_counts.index, time_span_counts.values, color='skyblue')
plt.xlabel('时间跨度', fontsize=14)
plt.ylabel('历史人物数量 (单位:人)', fontsize=14)
plt.title('不同时间跨度的历史人物数量', fontsize=16)
plt.grid(True)
# Annotate each bar with the number of historical figures
for i, count in enumerate(time_span_counts):
plt.text(i, count, str(count), ha='center', va='bottom', fontsize=12)
# Save the plot as a high-resolution image
plot_path = '/mnt/data/historical_figures_by_time_span_high_res.png'
plt.savefig(plot_path, dpi=300)
plt.show()
plot_path
复制代码
图表已成功生成,并已保存为高分辨率图片。这个柱状图展示了不同时间跨度(例如,19 世纪、20 世纪等)中历史人物的数量。
您可以通过以下链接下载高分辨率版本的图片:(图片链接通过 blob 加密)
验证结果——借助小浣熊得出的分析报告:
这里可以通过上图看到了我们提问的 4 个内容一一对应的结果,这里就相当的不错了。
图片安全性——blob 图片路径加密处理
高清图片链接:blob:https://raccoon.sensetime.com/67df1ce0-8c1b-433b-b3d7-5a713b9a1baa
这里给的是加密连接,所以别人是无法看到的,保障了数据的安全性。
5、文件智能格式化——二次文件返回
提问:
帮我根据上次提问所得到的数据重新创建一个 excel 文件返回给我。
反馈:
这里实打实的反馈了 Excel 文件,我下载后打开看到了具体的结果。
那么这代表我们做数据分析的过程信息也都是可以提供下载的 ,非常的 NICE。
6、实际操作视频
办公小浣熊——测评总结
通过真个测评获得以下几个优点,我们来看看:
1、可以分析 20M 以内的文件,多个文件不超过 80M,代表可以处理好几万的数据集。
2、所有给出的代码均在后台自动运行,解决了不懂代码不会安装环境的办公人员核心问题。
3、可以返回数据清洗后的文件,方便后期精准数据分析。
4、下载信息加密,有很强的安全性保障。
5、反馈结果与提问内容匹配性较强,连续性问题解决能力突出。
当前虽然仅总结了以上几点,我相信在后续的使用中肯定会发现更多的优点,希望本文能为大家在工作中提供一定的价值,欢迎自己去测评使用哦,官网地址:https://raccoon.sensetime.com/
评论