写点什么

办公智囊小浣熊——让小白都能干数据分析,就强的离谱。

作者:红目香薰
  • 2024-07-01
    河北
  • 本文字数:5708 字

    阅读完需:约 19 分钟

办公智囊小浣熊——让小白都能干数据分析,就强的离谱。

前言

小浣熊家族给出了两种智能助手分类,分别是【代码小助手】和【办公小助手】两类,两个工具我都测试了,其中代码小助手都是基础程序员的编码来拓展功能的,使用范围是有限,我今天给大家主要推荐一下【办公小浣熊】,因为完全不需要代码,只是平时的基础 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、数据结构分析——数据分析背景

提问:

当前的数据表乱,帮我分析一下那些列数据较为有价值,给我一个回馈。

反馈结果:

根据提供的数据,我们可以看到数据表中包含多个列,其中一些列包含关于个体的信息,而其他列则包含关于数据记录本身的信息。以下是我对每列的简要分析:

  1. id: 唯一标识符,对于区分不同的记录很重要。

  2. belong_to_dynasty_id 和 belong_to_dynasty_name: 表示个体所属的朝代,这对于历史分析可能很有价值。

  3. name 和 alias: 个体的名字和别名,这是基本的个人信息。

  4. nationality: 国籍信息,可以提供个体的地理背景。

  5. nation: 民族信息,可以提供个体的文化背景。

  6. birth_date 和 death_date: 出生和死亡日期,可以用于分析个体的生命周期。

  7. profession: 职业信息,可以提供个体的社会地位和经济背景。

  8. statuspinyinarticle_numweighis_m_baiduis_pc_baidurank: 这些列包含一些可能与数据记录的元数据或外部链接有关的信息。

  9. created_at 和 updated_at: 数据记录的创建和更新时间,可以用于跟踪数据的历史。

  10. 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}}
复制代码

六项数据分析结果:

  1. 数据概览:简要描述数据集的总体情况,包括行数和列数。

  2. 缺失值分析:分析每个列的缺失值情况。

  3. 数据类型分析:分析每个列的数据类型。

  4. 唯一值分析:分析每个列的唯一值数量,以了解数据的多样性。

  5. 基本统计分析:对数值型列进行基本的统计分析,包括平均值、中位数、最小值和最大值等。

  6. 数据质量评估:基于上述分析,对数据的质量进行评估。

我们可以根据这些提示进行下一步的数据分析,当然也可以自定义进行提问。

3、自由提问——分析目标

这里设定为初次提问,不懂怎么问,也没有做任何限制,目的是看【办公小浣熊】的 AI 能力。

问题:

请做一个历史人物数据量与时间的合理展示图。

结果反馈:

这是一个展示各个世纪历史人物数量的图表。每个柱状图代表一个世纪,高度表示该世纪中历史人物的数量。

请注意,由于某些历史人物的出生或死亡日期可能没有记录或无法解析,因此这些数据可能没有包括在内。

代码:

import matplotlib.pyplot as pltimport numpy as np
# Convert 'birth_date' and 'death_date' to datetime formatdf['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 liveddf['living_century'] = (df['birth_date'].dt.year // 100) + 1
# Count the number of historical figures in each centurycentury_counts = df['living_century'].value_counts().sort_index()
# Create the plotplt.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 figuresfor i, count in enumerate(century_counts): plt.text(i, count, str(count), ha='center', va='bottom')
plt.show()
复制代码

图片效果:

问题:

这里没有做任何限制,反馈的图片信息竟然也都是英文的 title,所以我们需要加上一些限制。

4、添加提问约束——分析思路

问题:

1、请将所有的人物按照时间跨度进行合理的划分并记录数量

2、所有显示的文字需要使用中文进行备注,并写明数据单位。

3、根据实际情况选择饼图、散点图、折线图或者漏斗图等进行展示。

4、返回的图片需要高清处理。

反馈结果(全):

好的,我将按照您的要求进行操作:

  1. 将所有的历史人物按照他们的生活时间跨度(例如,19 世纪、20 世纪等)进行分类,并记录每个分类中的人物数量。

  2. 在图表中使用中文进行注释,并标明数据单位。

  3. 根据数据的特点选择合适的图表类型进行展示。

  4. 生成高清晰度的图片。

让我们开始吧。


# 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 spantime_span_counts = df['time_span'].value_counts().sort_index()
# Create the plotplt.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 figuresfor 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 imageplot_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 attemptdf = pd.read_excel(file_path)
# Convert 'birth_date' and 'death_date' to datetime format againdf['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 againdef 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' columndf['time_span'] = df.apply(get_time_span, axis=1)
# Count the number of historical figures in each time spantime_span_counts = df['time_span'].value_counts().sort_index()
# Create the plot againplt.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 figuresfor 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 imageplot_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/

用户头像

红目香薰

关注

还未添加个人签名 2024-06-25 加入

还未添加个人简介

评论

发布
暂无评论
办公智囊小浣熊——让小白都能干数据分析,就强的离谱。_办公小浣熊_红目香薰_InfoQ写作社区