真不错,最近才发现MS Excel支持Python语法了!真不错!很方便!
使用起来最直接的感受就是:
-
Python运行环境轻松触达(Excel的安装量多大呀);
-
支持挺全面,Python的很多实用开源库包括数据分析(Pandas,Matplotlib,Seaborn等)、机器学习(Scikit-learn等)、符号运算(SymPy)、图与网络(NetworkX)等都支持。
可能很多小伙伴也像我一样第一次使用这个功能,下面我结合MS的官方教程和我个人的使用经验和大家分享其中的重要操作。
一、Python in Excel 简介
Python in Excel 是 Microsoft 365 提供的新功能,使用户能够直接在 Excel 中编写 Python 代码,并利用 Python 的强大计算和可视化功能来增强数据分析能力。
1. Python in Excel 的优势
-
内置 Python 计算:支持 Pandas、Matplotlib、Seaborn 等流行的 Python 库进行数据分析。
-
云端运行:Python 代码在 Microsoft 云端执行,不依赖本地 Python 环境。
-
与 Excel 紧密结合:可以直接引用 Excel 单元格数据并返回计算结果到 Excel 表格中。
-
支持数据可视化:使用 Matplotlib 和 Seaborn 绘制高级图表,提高数据分析的可视化能力。
2. Python in Excel 的适用版本
Python in Excel 适用于以下 Excel 版本:
-
Windows 平台的 企业版和商业版 Microsoft 365(版本 2408 及以上)。
-
Excel on the Web 适用于企业和商业用户。
-
个人和家庭用户 可在 Windows 版 Excel(版本 2405 及以上)或 Excel on the Web 预览。
-
Mac 版 Excel 预览版(Beta 频道,版本 16.95 及以上)。
-
不支持 iPad、iPhone 和 Android 设备上的 Excel。
二、如何在 Excel 中启用 Python
1. 启用 Python in Excel
-
打开 Excel 并创建一个新的工作簿。
-
在 “公式”(Formulas)选项卡下,点击 “插入 Python”(Insert Python)。
-
你还可以在单元格中直接输入
=PY
之后,旁边会直接显示“创建Python公式”,点击之后,这个单元格就可以变成Python单元格,输入Python代码,使用快捷键Ctrl+Enter
就可以运行。 -
运行之后你会发现Excel边栏会出现
Python 编辑器
,你也可以在那里输入代码,区域更宽敞。
2. 确认 Python 是否可用
使用上述方式输入以下简单的 Python 代码来测试 Python 是否已启用:
import math; math.sqrt(20)
如果 Python 已启用,单元格中会返回 4.4721
这个结果。
三、Python in Excel 的基本用法
1. 引用 Excel 单元格
在 Python 代码中,可以使用 xl()
函数引用 Excel 单元格:
xl('A1') + xl('B1')
如果 A1 单元格的值为 5
,B1 单元格的值为 10
,那么该公式的结果将返回 15
。
2. 使用 Python 进行计算
Python 可以执行复杂的数学计算,如:
=PY("import math; math.sqrt(xl('A1'))")
如果 A1 的值为 16
,那么返回的结果是 4
。
当然,我们也可以选取一定范围的表格,比如要选取A1-B9的表格,我们就可以写为:
xl('A1:B9')
这对于我们进行大量数据分析和Panda库使用很有用。
四、Python in Excel 的数据分析
1. 读取 Excel 数据
import pandas as pd; df = xl('A1:C10', headers=True); df.head()
此时在单元格中会出现DataFrame
的显示:
此时会出现多个选项,分别是:arrayPreview,Python_str,Python_type,Python_typeName。 它们是不同类型的输出,我们可以点击观察效果,比如我选择第一个,那就是:
2. 数据清理
import pandas as pd; df = xl('A1:B09', headers=True); df.dropna()
图像如下:
得到删除残缺数据之后的结果:
3. 计算统计指标
import pandas as pd; df = xl('A1:A100'); mean_value = df.mean()
这是计算了平均值,实际上其他统计运算也是可以的,比如算标准差:std_value = df.std()。
五、Python in Excel 的数据可视化
1. 生成折线图
import matplotlib.pyplot as plt; df = xl('A1:B10', headers=True); plt.plot(df['A'], df['B']); plt.xlabel('X轴'); plt.ylabel('Y轴'); plt.title('Excel 数据可视化')
2. 绘制散点图
import matplotlib.pyplot as plt; df = xl("A1:B10", headers=True); plt.scatter(df['A'], df['B']); plt.xlabel('X轴'); plt.ylabel('Y轴'); plt.title('Excel 数据可视化')
3. 生成 Seaborn 统计图
import seaborn as sns; import matplotlib.pyplot as plt; df = xl("A1:A10", headers=True); sns.boxplot(x=df['A']); plt.title('Seaborn 箱线图')
六、导入外部数据
1. 使用 Power Query 导入数据
-
在 Excel“数据” 选项卡中,选择 “获取数据” > “从文本/CSV” 以导入 CSV 文件。
-
选择 “仅创建连接” 选项,以便后续在 Python in Excel 中引用该数据。
2. 在 Python 中使用导入的数据
import pandas as pd; df = xl('MyTable[#All]', headers=True); df.head()
七、开源库及功能
Excel中使用的开源库是有限的,而且我尝试安装非列表中的库没有实现,我们这里就列举一下这里所涉及的所有库:
Excel中使用的开源库是有限的,我们这里列举一下支持的所有库及其功能:
库名称 | 功能描述 |
---|---|
Astropy | 天文学计算库,可用于天体物理数据分析。 |
beautifulsoup4 | 一个用于网页抓取的Python库,支持解析HTML和XML。 |
Faker | 生成虚假数据的库,可用于测试数据填充。 |
imbalanced-learn | 用于处理类别不平衡数据的机器学习库,依赖于Scikit-learn。 |
IPython | 提供交互式计算环境,增强Python的命令行体验。 |
Matplotlib | 强大的Python绘图库,可创建高质量的可视化图表。 |
mlxtend | 提供机器学习辅助功能,如特征选择、集成方法等。 |
NetworkX | 处理和分析复杂网络(如社交网络、知识图谱)的库。 |
NLTK | 自然语言处理库,支持文本分析、词性标注、情感分析等。 |
NumPy | 提供高性能的多维数组计算功能,适用于科学计算。 |
pandas | 提供数据结构和数据分析工具,支持数据清理、处理和分析。 |
Pillow | 图像处理库,支持多种格式的图片打开、编辑和转换。 |
plotnine | 一个基于ggplot2的Python可视化库,适用于统计数据绘图。 |
Prince | 多元统计分析库,适用于数据降维和聚类分析。 |
PyTables | 处理大规模数据的库,结合HDF5和NumPy提供高效存储和检索。 |
PyWavelets | 小波变换库,适用于信号处理和图像分析。 |
qrcode | 生成二维码的Python库,支持各种格式的二维码。 |
scikit-learn | 机器学习库,包含分类、回归、聚类等模型及算法。 |
SciPy | 科学计算库,提供优化、插值、积分、线性代数等功能。 |
seaborn | 基于Matplotlib的高级可视化库,适用于统计数据分析。 |
snowballstemmer | 一组用于文本词干提取的算法库。 |
squarify | 用于创建树形图的库,可用于层次结构数据的可视化。 |
statsmodels | 统计建模库,提供回归分析、时间序列分析等功能。 |
SymPy | 符号计算库,支持数学公式解析、求导、积分等。 |
tabulate | 生成格式化表格的库,可用于数据展示。 |
TheFuzz | 字符串模糊匹配库,可用于文本相似度计算。 |
wordcloud | 生成词云图的库,适用于文本可视化分析。 |
这些库覆盖了数据分析、可视化、机器学习、网络分析、自然语言处理等多个领域,使得 Excel 在数据处理方面的能力大幅增强。
七、常见问题及解决方案
1. #PYTHON! 错误
-
可能是 Python 语法错误,检查代码是否有拼写或格式问题。
2. #BUSY! 错误
-
说明 Excel 正在计算 Python 代码,等待计算完成或使用
Ctrl+Alt+Shift+F9
重新计算。
3. #CONNECT! 错误
-
说明 Excel 无法连接到 Python 服务器,检查网络连接并重试。
通过 Python in Excel,你可以:
-
高效分析 Excel 数据,如计算统计量、数据清理等。
-
生成专业级数据可视化,如折线图、散点图、箱线图等。
-
使用 Pandas 处理数据,提升 Excel 计算能力。
可能也有熟悉Python的朋友觉得这样没有必要,反而使用起来更麻烦,但是不同使用者有不同的学习路径以及工具倾向。
对于习惯使用 Excel 进行数据分析的用户,Python in Excel 提供了更强大的数据处理能力,使得他们可以更高效地完成数据分析任务,而无需切换到 Python 独立环境。