加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码?

没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用Excel一样简单:

以 Excel 为代表的电子表格是探索数据集的最重要、最具适应性的方式之一。它可以帮助对数据类型进行必要的更改、创建新特征、对数据进行排序以及从现有特征中创建新特征。

遵循以上相同的思路,Mito是一个Jupyter-Lab扩展和Python库,它使得在支持GUI的电子表格环境中操作数据变得超级容易。

Mito的出现,像是将Python的强大功能、和Excel的易用性进行了结合。

只需要掌握Excel的用法,就能使用Python的数据分析功能,还能将写出来的代码“打包带走”。

它弥补了Excel在数据分析上的几个缺陷:

  • Excel无法做大数据分析(大型数据集处理得不好)
  • Excel运行缓慢
  • Excel无法轻松创建可重复流程

同时,又比SQL和Python更简单、直观。毕竟这些专业工具对于0基础初学者来说,需要至少几年时间,才能完全上手。

在本文中,我们将一起学习:

  1. 如何合理设置Mito
  2. 如何debug安装错误
  3. 使用 Mito 提供的各种功能
  4. 该库如何为对数据集所做的所有操作生成 Python 等效代码

安装Mito

Mito 是一个 Python 库,可以通过 pip 包管理器安装。它需要 Python 3.6 及以上版本。此外,系统上需要安装 Nodejs,一个 JavaScript 运行时环境。

另外,可以在单独的环境(虚拟环境)中安装这个包,可以避免一些依赖错误。接下来在终端中运行这些命令,完成安装即可。

1. 创建环境

我正在使用 Conda 创建一个新环境。你还可以使用 Python 的“venv”来创建虚拟环境。

conda create -n mitoenv python=3.8

2. 激活环境

conda activate mitoenv

3. 通过pip安装Mito

pip install mitoinstaller

4. 运行 Mito 安装程序

python -m mitoinstaller install

此过程将需要一段时间来安装和设置 Mito。

5. 启动 Jupyter Lab

jupyter lab

报错解决

当启动 Jupyter Lab时,可能会遇到如下错误:

.
File "c:userslenovoanaconda3envsmitoenvlibsite-packagesjupyter_corepaths.py", line 387, in win32_restrict_file_to_userimport win32api
ImportError: DLL load failed while importing win32api: The specified module could not be found.

要修复此错误,只需运行以下命令:

pip install --upgrade pywin32==225

如果你遇到其他困难,请随时在下面发表评论。我很乐意提供帮助。

MitoSheets 界面

在 Jupyter Lab中,创建一个新笔记本并初始化 Mitosheet:

import mitosheet
mitosheet.sheet()

第一次,系统会提示输入你的电子邮件地址进行注册:

填写完基础知识后,将被重定向到 GUI 电子表格。接下来我们一起看看这个接口的所有特性,并一起学习如何生成 Python 等效代码。

加载数据集

要在 MitoSheets 中加载数据集,只需单击导入。有两个选择:

从当前文件夹添加文件:这将列出当前目录中的所有 CSV 文件,可以从下拉菜单中选择文件。
按文件路径添加文件:这将仅添加该特定文件。
如下图所示

如果你看下面的单元格,你会发现Python等效的代码导入一个数据集使用pandas已经生成了适当的注释!

这就是 Mito 的魅力,你在 Mitosheet 中执行的每个操作都将转换为 Python 等效代码!接下来我们一起详细探讨一下 Mito 的所有功能。

添加和删除列

添加列

就像在 Excel 等电子表格中一样,你可以添加一个新列,该列可能是从现有列或特征创建的。要在 Mito 中执行此操作,只需单击“Add Col”按钮。该列将添加到当前选定的列旁边。最初,列名将是一个字母表,列的所有值都为零。

编辑新列的内容

  1. 单击新列名称(分配的字母表)
  2. 将弹出侧边栏菜单,你可以在其中编辑列的名称。
  3. 要更新该列的内容,请单击该列的任何单元格,然后输入值。你可以输入一个常量值,也可以根据数据集的现有特征创建值。如果要从现有列创建值,则直接使用要执行的运算符调用列名。
  4. 新列的数据类型根据分配的值进行更改。

下面的 GIF 演示了上面提到的所有内容:

删除列

  1. 通过单击选择任何列。
  2. 单击“Del Col”,该特定列将从数据集中删除。

Python代码

在下一个单元格中生成带有正确注释的 Python 等效代码,用于执行的操作是:

# MITO CODE START (DO NOT EDIT)
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 创建这样的表,

  1. 单击“Pivot”并选择源数据集(默认加载 CSV)
  2. 选择数据透视表的行、列和值列。还可以为值列选择聚合函数。所有下拉选项,如求和、平均值、中值、最小值、最大值、计数和标准偏差都可用。
  3. 选择所有必要的字段后,将获得一个单独的表,其中包含数据透视表的实现。

下面的 GIF 演示了如何为聚合函数“均值”创建数据透视表:

Python代码

# MITO CODE START (DO NOT EDIT)
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 很容易。

  1. 单击“Merge”并选择数据源。
  2. 需要指定要对其进行合并的键。
  3. 也可以从数据源中选择合并后要保留的列。默认情况下,所有列都将保留在合并的数据集中。

Python代码

# MITO CODE START (DO NOT EDIT)
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本身完成。

  1. 单击所需的列
  2. 将看到一个数据类型列表。可以根据需要从下拉列表中选择任何数据类型,该数据类型将应用于整个列。
  3. 接下来可以通过选择提供的选项按升序或降序对数据进行排序。
  4. 还可以使用自定义过滤器过滤数据。

Python代码

# MITO CODE START (DO NOT EDIT)
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 代码。

关于Python学习资料:

在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。

python兼职资源+python全套学习资料

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

Python和Excel终于互通了!这个Jupyter插件能自动生成代码并实现数据分析相关推荐

  1. Python 与 Excel 终于互通了 !

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 机器之心报道,参与:思源.张倩 很多开发者说自从有了 Python/Pandas,Excel 都不怎么用了,用它来处 ...

  2. 画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)

    画[Python折线图]的一百个学习报告(三.自动生成单一数据折线图) 目录 画[Python折线图]的一百个学习报告(三.自动生成单一数据折线图) 前言 学习环境 探究目标 分析过程 实践过程 成果 ...

  3. ctypes安装_用python amp; bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本

    2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh" !incl ...

  4. Python自动生成代码 - 通过tkinter图形化操作生成代码框架

    Python自动生成代码 - 通过tkinter图形化操作生成代码框架 背景 脚本代码 Demo_CodeGenerator.py display.py FileHandler.py: 脚本运行结果: ...

  5. excel自动生成代码_1

    需要写一段写寄存器的的代码,实现: 1.超过2000个的寄存器要写,书写的格式相同(地址+内容): 2.多次调用写寄存器的接口SPI,每次写入的长度有限制,可能需要写写入很多次,并且按照功能,封装成不 ...

  6. 太赞!Python和Excel终于可以互通了

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 今天为大家分享一篇使用python将大量数据导出到Excel中的技巧心得,可以让Pyt ...

  7. 【好消息】Python和Excel终于可以互通了!!

    点击上方"爱学AI",选择"置顶公众号" 精品文章,第一时间送达 作者:小天真_5eed 链接:https://www.jianshu.com/p/6ecf41 ...

  8. python excelwriter保存路径_太赞!Python和Excel终于可以互通了

    今天为大家分享一篇使用python将大量数据导出到Excel中的技巧心得,可以让Python和Excel的数据实现互通!具有很好的参考价值,希望对大家有所帮助(建议在电脑端阅读,代码案例较多).一起过 ...

  9. python to excel 路径_好消息!Python和Excel终于可以互通了!

    精品文章,第一时间送达 作者:小天真_5eed 链接:https://www.jianshu.com/p/6ecf414f3372 今天为大家分享一篇使用python将大量数据导出到Excel中的技巧 ...

最新文章

  1. 专家点评Nat Micro | 朱永群组首次发现特异地切割线性泛素链的全新去泛素化酶...
  2. 微软开发团队的DevOps实践启示
  3. Emmet插件使用方法总结
  4. 洛谷P1908求逆序对【树状数组】
  5. leetcode46. 全排列(回溯)
  6. 2、SQL UNION 和 UNION ALL 操作符
  7. v-pre让Vue直接显示{{}}不编译
  8. 小规模企业如何做账 e-mail_小规模公司自学做账方法
  9. 通过身份证号查出所在籍贯以及性别。
  10. 使用javah 生成.h头文件
  11. echarts 生成 迁徙图_利用百度Echarts开发人口迁徙图(产品流向图)
  12. linux版wps系统缺失字体,ubuntu wps 字体缺失的解决方法
  13. oracle11g安装卡在94,winserver2008R2 安装64位 oracle 11G R2 卡在2%,求解
  14. GDOI2018滚粗记
  15. JS学习之路,菜鸟总结的注意事项及错误更正
  16. HTML5 第七章 表格
  17. Python-基于词典-中文分词算法
  18. 计算机连校园网没有弹出页面,我的电脑连接校园网 能连上,但是浏览器不弹出来 登录页面,为何...
  19. OpenStack--Glance组件部署!!!
  20. C#中的多線程-----引自:http://www.daima.com.cn/info/234.htm

热门文章

  1. ERR_PNPM_META_FETCH_FAIL GET https://registry.npmjs.org/@webpack-cli%2Fserve: request to https://re
  2. 数据库系统原理 —— 第一章 数据库系统概述知识点总结(自考本)
  3. 北理工课程表导入到Google日历中
  4. css 图片底部多出的空白
  5. nohup 命令的开启和关闭
  6. 京沪高铁沪宁城铁昆山南站效果图
  7. 【国庆快乐】送给祖国母亲一朵玫瑰花(效果+代码+运行)
  8. 有乙肝可以买什么保险最合适?最新投保推荐请拿好!
  9. 关于Integer类型采用大于、小于号的验证
  10. Java 中 int和Integer比较