首页 > 编程知识 正文

python excel库(如何用python处理excel)

时间:2023-05-06 12:26:08 阅读:77383 作者:427

原作者Parul Pandey

晓编译整理

量子出品|公众号QbitAI

将数据转换为更直观的图像有助于理解数据背后的真相。 如果您有这种需求,并且仍在使用Python,强烈建议您尝试Altair。

Altair是一个专门为Python编写的可视软件包,使数据科学家可以更加关注数据本身及其内部的联系。

Altair由华盛顿大学数据科学家甜甜的可乐Vanderplas撰写,目前在千兆赫布获得3000多颗星星。

最近,Medium的姐姐Parul Pandey分享了Altair入门教程,希望对从事数据科学的用户有所帮助。 量子位编译整理了主要内容。

使用教程

Parul以汽车数据为例,将汽车数据集“cars”加载到Altair中。

cars包含汽车生产年、油耗、原产国等9个数据,将这些内容可视化处理。

安装和导入Altair软件包

除Altair及其依赖软件外,还必须安装其他前端工具,如Jupyter Notebook、JupyterLab和Colab。

保罗姐姐建议安装JupyterLab :

$ pip install-ualtairvega _ datasetsjupyterlab

需要注意的是,Altair教程文档还包含vega数据集,因此也需要一起安装。

然后在终端上输入“jupyter lab”,即可在浏览器中自动打开。

请不要忘记将Altair导入代码的开头:

import altair as alt

以上准备完成后,我们可以开始画画了

开始绘制图表

Altair的基本对象是Chart,它将数据框用作一个参数。 可以这样定义:

是chart=alt.chart(cars )

Chart有三种基本方法:数据(data )、标记)和编码。 使用的格式如下。

alt.chart (数据).mark_point ).encode (

编码_1=' column _1',

编码_2=' column _2',

# etc.)

正如名称所示,数据直接导入cars数据集即可。 标记和编码决定了图表的样式。 现在,我将集中讨论这两个部分。

标记可以在图中以各种形式表示数据点,包括填充点、空心圆和方形。

如果只调用此方法,则所有数据点都将重叠。

这显然没有意义,还需要用于指定图像具体内容的代码。 常用的代码如下

x: x轴的数值

y: y轴的数值

color:标记点颜色

opacity:标记点透明度

形状:标记点的形状

size:标记点的大小

row:行图像

按column:列列出的图像

以汽车油耗为例,在一维散点图中绘制所有汽车的数据,并将x轴指定为油耗:

alt.chart(cars ).mark_point ).encode (

x='Miles_per_Gallon '

但是,mark_point ) )时,所有标记点都将混合在一起。 为了便于查看图像,可以将其替换为棒状标记点mark_tick )。

alt.chart(cars ).mark_tick ).encode (

x='Miles_per_Gallon '

c-img-caption">

以耗油量为X轴、马力为Y轴,绘制所有汽车的分布,就得到一张二维图像:

alt.Chart(cars).mark_line().encode( x='Miles_per_Gallon', y='Horsepower' )

给图表上色

前面我们已经学会了绘制二维图像,如果能给不同组的数据分配不同的颜色,就相当于给数据增加了第三个维度。

alt.Chart(cars).mark_point().encode( x='Miles_per_Gallon', y='Horsepower', color='Origin' )

上面的图中,第三个维度“原产国”是一个离散变量。

使用颜色刻度表,我们还能实现对连续变量的上色,比如在上图中加入“加速度”维度,颜色越深表示加速度越大:

alt.Chart(cars).mark_point().encode( x='Miles_per_Gallon', y='Horsepower', color='Acceleration' )

数据的分类与汇总

上面的例子中,我们使用的主要是散点图。实际上,Altair还能方便地对数据进行分类和汇总,绘制统计直方图。

相比其他绘图工具,Altair的特点在于不需要调用其他函数,而是直接在数轴上进行修改。

例如统计不同油耗区间的汽车数量,对X轴使用alt.X(),指定数据和间隔大小,对Y轴使用count()统计数量。

alt.Chart(cars).mark_bar().encode( x=alt.X('Miles_per_Gallon', dddbbt=alt.Bin(maxdddbbts=30)), y='count()' )

为了分别表示出不同原产国汽车的油耗分布,前文提到的上色方法也能直方图中使用,这样就构成一幅分段的统计直方图:

alt.Chart(cars).mark_bar().encode( x=alt.X('Miles_per_Gallon', dddbbt=alt.Bin(maxdddbbts=30)), y='count()', color='Origin' )

如果你觉得上图还不够直观,那么可以用column将汽车按不同原产国分列成3张直方图:

alt.Chart(cars).mark_bar().encode( x=alt.X('Miles_per_Gallon', dddbbt=alt.Bin(maxdddbbts=30)), y='count()', color='Origin', column='Origin' )

交互

除了绘制基本图像,Altair强大之处在于用户可以与图像进行交互,包括平移、缩放、选中某一块数据等操作。

在绘制图片的代码后面,调用interactive()模块,就能实现平移、缩放:

Altair还为创建交互式图像提供了一个selection的API:

在选择功能上,我们能做出一些更酷炫的高级功能,例如对选中的数据点进行统计,生成实时的直方图。

叠加多个图层

如果把前面的汽车耗油量按年度计算出平均值:

alt.Chart(cars).mark_point().encode( x='Miles_per_Gallon', y='Horsepower', color='Acceleration' )

在统计学上,我们还能定义平均值的置信区间,为了让图表更好看,可以分别列出三个不同产地汽车的耗油量平均值置信区间:

alt.Chart(cars).mark_area(opacity=0.3).encode( x=alt.X(‘Year’, timeUnit=’year’), y=alt.Y(‘ci0(Miles_per_Gallon)’, axis=alt.Axis(title=’Miles per Gallon’)), y2=’ci1(Miles_per_Gallon)’, color=’Origin’ ).properties( width=600 )

最后我们可以用图层API将平均值和置信区间两幅图叠加起来:

spread = alt.Chart(cars).mark_area(opacity=0.3).encode( x=alt.X('Year', timeUnit='year'), y=alt.Y('ci0(Miles_per_Gallon)', axis=alt.Axis(title='Miles per Gallon')), y2='ci1(Miles_per_Gallon)', color='Origin' ).properties( width=800 ) lines = alt.Chart(cars).mark_line().encode( x=alt.X('Year', timeUnit='year'), y='mean(Miles_per_Gallon)', color='Origin' ).properties( width=800 ) spread + lines

更多内容

本文只是介绍了Altair的一些基本使用方法,远远不能涵盖它所有的功能。如果需要了解更多,请参阅GitHub页说明:

https://github.com/altair-viz/altair

教程原文:

https://medium.com/analytics-vidhya/exploratory-data-visualisation-with-altair-b8d85494795c

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。