社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

这个插件竟打通了Python和Excel,还能自动生成代码!

CDA数据分析师 • 2 年前 • 192 次点击  

作者:云朵君

来源:数据STUDIO


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



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


介绍

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

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

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

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

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

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

同时,又比SQLPython简单、直观。毕竟这些专业工具对于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_user
    import 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 中加载数据集,只需单击导入。有两个选择:

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

如下图所示

如果你看下面的单元格,你会发现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 代码。

项目主页:
https://trymito.io/launch



 


点这里👇关注我,记得标星哦~

 

推荐阅读



  

CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125848
 
192 次点击