这个插件竟打通了Python和Excel,还能自动生成代码!
The following article is from 数据STUDIO Author 云朵君
作者 | 云朵君
来源丨数据STUDIO
加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码?
以 Excel 为代表的电子表格是探索数据集的最重要、最具适应性的方式之一。它可以帮助对数据类型进行必要的更改、创建新特征、对数据进行排序以及从现有特征中创建新特征。
遵循以上相同的思路,Mito是一个Jupyter-Lab扩展和Python库,它使得在支持GUI的电子表格环境中操作数据变得超级容易。
Mito的出现,像是将Python的强大功能、和Excel的易用性进行了结合。
只需要掌握Excel的用法,就能使用Python的数据分析功能,还能将写出来的代码“打包带走”
。
它弥补了Excel在数据分析上的几个缺陷:
Excel无法做大数据分析(大型数据集处理得不好)
Excel运行缓慢
Excel无法轻松创建可重复流程
同时,又比SQL和Python更简单、直观。毕竟这些专业工具对于0基础初学者来说,需要至少几年时间,才能完全上手。
在本文中,我们将一起学习:
如何合理设置Mito
如何debug安装错误
使用 Mito 提供的各种功能
该库如何为对数据集所做的所有操作生成 Python 等效代码
安装Mito
1. 创建环境
“venv”
来创建虚拟环境。2. 激活环境
3. 通过pip安装Mito
4. 运行 Mito 安装程序
5. 启动 Jupyter Lab
报错解决
import win32api
ImportError: DLL load failed while importing win32api: The specified module could not be found.
在 Jupyter Lab中,创建一个新笔记本并初始化 Mitosheet:
mitosheet.sheet()
第一次,系统会提示输入你的电子邮件地址进行注册:
填写完基础知识后,将被重定向到 GUI 电子表格。接下来我们一起看看这个接口的所有特性,并一起学习如何生成 Python 等效代码。
要在 MitoSheets 中加载数据集,只需单击导入。有两个选择:
从当前文件夹添加文件:这将列出当前目录中的所有 CSV 文件,可以从下拉菜单中选择文件。
按文件路径添加文件:这将仅添加该特定文件。
如下图所示
如果你看下面的单元格,你会发现Python等效的代码导入一个数据集使用pandas已经生成了适当的注释!
这就是 Mito 的魅力,你在 Mitosheet 中执行的每个操作都将转换为 Python 等效代码!接下来我们一起详细探讨一下 Mito 的所有功能。
添加列
“Add Col”
按钮。该列将添加到当前选定的列旁边。最初,列名将是一个字母表,列的所有值都为零。编辑新列的内容
单击新列名称(分配的字母表) 将弹出侧边栏菜单,你可以在其中编辑列的名称。 要更新该列的内容,请单击该列的任何单元格,然后输入值。你可以输入一个常量值,也可以根据数据集的现有特征创建值。如果要从现有列创建值,则直接使用要执行的运算符调用列名。 新列的数据类型根据分配的值进行更改。
删除列
通过单击选择任何列。 单击 “Del Col”
,该特定列将从数据集中删除。
Python代码
在下一个单元格中生成带有正确注释的 Python 等效代码,用于执行的操作是:
from mitosheet import * # Import necessary functions from Mito
register_analysis('UUID-7bf77d26-84f4-48ed-b389-3f7a3b729753') # Let Mito know which analysis is being run
# Imported edxCourses.csv
import pandas as pd
edxCourses_csv = pd.read_csv('edxCourses.csv')
# Added column H to edxCourses_csv
edxCourses_csv.insert(7, 'H', 0)
# Renamed H to newCol in edxCourses_csv
edxCourses_csv.rename(columns={"H": "newCol"}, inplace=True)
# Set newCol in edxCourses_csv to =coursePrice + courseEnrollments
edxCourses_csv['newCol'] = edxCourses_csv['coursePrice'] + edxCourses_csv['courseEnrollments']
# Deleted column newCol from edxCourses_csv
edxCourses_csv.drop('newCol', axis=1, inplace=True)
# MITO CODE END (DO NOT EDIT)
创建数据透视表
数据透视表是一个重要的 excel 功能,它根据另一个分类特征汇总数字变量。要使用 Mito 创建这样的表,
单击 “Pivot”
并选择源数据集(默认加载 CSV)选择数据透视表的行、列和值列。还可以为值列选择聚合函数。所有下拉选项,如求和、平均值、中值、最小值、最大值、计数和标准偏差都可用。 选择所有必要的字段后,将获得一个单独的表,其中包含数据透视表的实现。
“均值”
创建数据透视表:Python代码
from mitosheet import * # Import necessary functions from Mito
register_analysis('UUID-a35246c0-e0dc-436b-8667-076d4f08e0c1') # Let Mito know which analysis is being run
# Imported edxCourses.csv
import pandas as pd
edxCourses_csv = pd.read_csv('edxCourses.csv')
# Pivoted edxCourses_csv into df2
pivot_table = edxCourses_csv.pivot_table(
index=['courseOrganization'],
values=['coursePrice'],
aggfunc={'coursePrice': 'mean'}
)
# Reset the column name and the indexes
df2 = pivot_table.rename_axis(None, axis=1).reset_index()
# MITO CODE END (DO NOT EDIT)
合并数据集是数据科学项目的重要组成部分。通常,数据集被划分到不同的表格中,以增加信息的可访问性和可读性。合并 Mitosheets 很容易。
单击 “Merge”
并选择数据源。需要指定要对其进行合并的键。 也可以从数据源中选择合并后要保留的列。默认情况下,所有列都将保留在合并的数据集中。
Python代码
from mitosheet import * # Import necessary functions from Mito
register_analysis('UUID-88ac4a92-062f-4ed8-a55d-729394975740') # Let Mito know which analysis is being run
# Imported Airport-Pets.csv, Zipcode-Data.csv
import pandas as pd
Airport_Pets_csv = pd.read_csv('Airport-Pets.csv')
Zipcode_Data_csv = pd.read_csv('Zipcode-Data.csv')
# Merged Airport_Pets_csv and Zipcode_Data_csv
temp_df = Zipcode_Data_csv.drop_duplicates(subset='Zip')
Airport_Pets_csv_tmp = Airport_Pets_csv.drop(['State', 'Division'], axis=1)
Zipcode_Data_csv_tmp = temp_df.drop(['Mean_Income', 'Pop'], axis=1)
df3 = Airport_Pets_csv_tmp.merge(Zipcode_Data_csv_tmp, left_on=['Zip'], right_on=['Zip'], how='left', suffixes=['_Airport_Pets_csv', '_Zipcode_Data_csv'])
# MITO CODE END (DO NOT EDIT)
你可以更改现有列的数据类型,按升序或降序对列进行排序,或通过边界条件过滤它们。在 Mito 中的这些都很简单,可以通过选择屏幕上的选项通过GUI本身完成。
单击所需的列 将看到一个数据类型列表。可以根据需要从下拉列表中选择任何数据类型,该数据类型将应用于整个列。 接下来可以通过选择提供的选项按升序或降序对数据进行排序。 还可以使用自定义过滤器过滤数据。
Python代码
from mitosheet import * # Import necessary functions from Mito
register_analysis('UUID-cc414267-d9aa-4017-8890-ee3b7461c15b') # Let Mito know which analysis is being run
# Imported edxCourses.csv
import pandas as pd
edxCourses_csv = pd.read_csv('edxCourses.csv')
# Changed coursePrice from int64 to float
edxCourses_csv['coursePrice'] = edxCourses_csv['coursePrice'].astype('float')
# Sorted coursePrice in edxCourses_csv in descending order
edxCourses_csv = edxCourses_csv.sort_values(by='coursePrice', ascending=False, na_position='first')
edxCourses_csv = edxCourses_csv.reset_index(drop=True)
# Filtered coursePrice in edxCourses_csv
edxCourses_csv = edxCourses_csv[edxCourses_csv['coursePrice'] >= 500]
edxCourses_csv = edxCourses_csv.reset_index(drop=True)
# MITO CODE END (DO NOT EDIT)
还可以直接在此扩展中生成图形,而无需编写绘图逻辑。默认情况下,此扩展生成的所有图都是使用 Plotly 制作的。这意味着绘图是交互式的,可以即时修改。
注意,这里并没有像操作列一样,在下一个单元格中生成图形代码(也许开发人员会在以后的更新中推送此代码)
可以使用 Mito 生成两种类型的图:
1. 通过点击图表按钮
你将看到一个侧边栏菜单,用于选择图形类型和要选择的相应轴。
2. 通过点击列名
“Summary Stats”
,则会根据变量的类型显示线图或条形图以及变量的摘要。此摘要更改为文本和没有文本变量。保存和回放
对数据集所做的所有转换都可以保存并用于其他类似的数据集。这在 Excel 中采用宏或 VBA 的形式。也可以通过这些功能完成相同的操作。
文件是以Python编写的,而不是用比较难懂的VBA。
回溯执行的所有步骤
要想重复上面的步骤的话,也非常容易,Mito自带“重复已保存分析步骤”
功能,一键就能用同样的方法分析其他数据。这个功能是最有趣的。你实际上可以追踪在 Mitosheet 中应用的所有转换。所有操作的列表都带有适当的标题。
此外,你可以查看该特定步骤!这意味着假设你更改了一些列,然后删除了它们。你可以退回到未删除的时间。
到这里,就和云朵君一起学习了一个新工具“Mito”
。用于在 Python 环境中实现类似电子表格的功能,并为所做的每一步生成等效操作的 Python 代码。
https://trymito.io/launch
技术技术
分享
点收藏
点点赞
点在看