Deepnote是一个先进的云端数据科学平台,可以帮助数据科学家和开发者轻松创建、管理和共享他们的数据科学项目。它提供了一个易于使用的界面,可以轻松编写代码、访问数据和执行任务,而无需管理服务器或编写复杂的部署代码。
1、Deepnote概述
它是一个在线框架,可在 Python 中创建和运行笔记本。与Jupyterlab相比,Deepnote 允许我们实时协作编写 Python 笔记本。团队成员可以评论成员们写的代码!Deepnote 可以轻松与最流行的云服务(如 Google Drive 和 Amazon S3)以及最流行的数据库(如 PostgresSQL 和 MongoDB)集成。当然它也可以直接读取编辑本地文件,如CSV等。
Deepnote使用性上也不比Jupyter Notebook差,首先它有一个简单易用的界面,使用户可以轻松地编写、运行和维护数据分析代码。
Deepnote还提供了很多方便的功能。首先,它支持实时运行代码和查看结果。用户可以在Deepnote中直接写代码并执行,无需在本地安装任何软件。其次,Deepnote还支持Jupyter Notebook模式。用户可以将代码和Markdown文本混合在一起,方便地记录和分享分析结果。此外,Deepnote还内置了一些常用的数据科学库和工具,例如Pandas、Matplotlib等。
使用Deepnote非常简单。用户只需注册一个账号,然后新建一个项目即可开始编程。在项目中,用户可以创建不同的Notebook,每个Notebook都相当于一个独立的代码文件。用户可以在Notebook中添加代码、注释和其他文本,并将其保存到项目中。如果需要邀请他人协作,则可以通过共享链接或电子邮件进行邀请。
总之,Deepnote是一个非常强大、方便的在线编程环境,特别适合数据科学和机器学习领域的工作。它提供了协作式编辑、实时运行代码和Jupyter Notebook等多种功能,为用户提供了高效且便捷的编程体验。
如果你是Python或Notebook环境的初学者,Deepnote是一个简单易行的起点。
2、Deepnote的简单入门
2.1 项目创建
“PROJECTS” - “+” - “New project”
2.2 数据导入(以本地CSV为例)
使用 CSV源数据,只需将其拖到deepnote项目上即可。
这样CSV文件就上传至deepnote远端(内存)中,我们可直接进行Pandas读取数据
如果我们想要添加云端数据库,需要添加凭证授权
2.3 远端环境
云端默认环境为Python3.9,5G内存 2vCPU配置,如果想要更高环境配置,可升级Team 或 Enterprise 计划,则可以在 16GB、4vCPU 机器上享受无限时数。
3、Deepnote Jupyter 使用
如果我们经常使用Jupyter Note进行数据分析的话,可以将本地的.ipynb文件上传到deepnote中进行使用,在此基础上进行开发测试。并且还可以导出.ipynb文件进行离线查看。当然deepnote还支持链接GitHub仓库,将我们编写的.ipynb上传提交至GitHUb仓库下。
导入方式(两种):
- 将文件拖放
.ipynb
到右侧面板的NOTEBOOKS
- 单击NOTEBOOKS部分中的+按钮,然后选择Upload an .ipynb选项
导出.ipynb
文件:
4、Deepnote的笔记块
4.1 SQL块
为了更容易查询数据库,Deepnote 包含所谓的“SQL 块”。将其中一个数据库集成连接到 Deepnote(PostgreSQL、Redshift、BigQuery或Snowflake)后,我们可以创建 SQL 块并开始编写 SQL 查询。当运行 SQL 查询时,Deepnote 会在 Pandas DataFrame 中显示结果。
使用 Python 和 SQL
Deepnote 使用jinjasql模板,允许您将变量、函数和控制结构(例如,if语句和for循环)传递到您的 SQL 查询中。
- 要在 SQL 查询中注入 Python 变量,请使用
{{ variable_name }}
语法。例如:
SELECT date, name FROM fh-bigquery.weather_gsod.all WHERE name = {{ station_name }} LIMIT 10
- 将列表或元组传递到您的 SQL 查询中需要来自
inclause
jinjasql 的关键字。正如您在下面看到的,我们使用与以前类似的语法,但这个新关键字前面有符号|
。
SELECT date, name FROM fh-bigquery.weather_gsod.all WHERE name in {{ station_list | inclause}} ORDER BY date DESC
- 要注入列名和表名,请使用
sqlsafe
关键字,如下所示:
SELECT * FROM {{ table_name | sqlsafe }}
- 一个常见的用例是搜索包含(例如,
%
表示可选子字符串的字符)的通配符模式。要将其与变量值结合使用,请使用以下语法:
SELECT * FROM users WHERE name LIKE {{ '%' + first_name + '%' }}
- 您还可以使用更高级的模板功能,如
{% if condition } %{ endif }
、条件块或 jinjasql 支持的任何其他功能。例如,以下块循环遍历 Python 列表 (column_names
) 以构造所需的 SQL 字段。
SELECT date, name, {% raw %} {% for col in column_names %} {% if not loop.last %} {{ col | sqlsafe }}, {% else %} {{ col | sqlsafe }} {% endif %} {% endfor %} {% endraw %} FROM fh-bigquery.weather_gsod.all WHERE date > '2015-12-31' and name = {{ station_name }} ORDER BY date DESC LIMIT 5
4.2 图表块
图表块允许我们在不使用代码的情况下从 Pandas DataFrames 创建图表。非常适合快速探索性分析,或者适合那些不熟悉如何使用 Python 代码制作图表的人。
4.3 文本块
Deepnote 具有丰富的文本编辑器,可以很容易地给文本叙述添加样式和结构。与编写代码类似,编辑文本也基于块的概念:文本中的每个结构元素(标题、段落、列表项等)在笔记本中表示为一个单独的块。
通过单击 +(添加块)按钮来添加文本块。从一系列不同的文本块类型中进行选择,包括段落、标题、列表和标注块。
Deepnote 的日常使用介绍就到这里了,它是一套用于 Python、SQL 和无代码分析的协作数据笔记本。能够在云端运行并安全地连接到任何数据源。对于那些经常在本地电脑进行数据开发的同学来说,可能需要经常查看下本地的一些信息或开发流程。如果在云上就方便很多了,可以实时更新了解自己的开发细则,更好开展工作。