数据可视化与Python Pandas

在当今这个数据驱动的世界中,只有从数据中提取信息才能从中受益。数据可视化是数据分析中最直观的部分,因为它允许与数据互动。这是一种神奇的技术,可以在一瞥之间向大量人群传达信息,并从数据中创造出有趣的故事。PandasPython中最流行且广泛使用的数据分析工具之一。它还内置了一个绘图函数用于样本。然而,当涉及到交互式可视化时,没有前端工程技能的Python用户可能会遇到一些挑战,比如许多库,如D3、chart.js,需要一些JavaScript知识。Plotly和Cufflinks在这一点上派上了用场。

当数据量很大,企业难以从中提取决定性信息时,数据可视化在做出关键业务决策中扮演着重要角色。Plotly是一个建立在d3.js之上的图表库,由于另一个名为Cufflinks的库,可以直接与Pandas数据帧一起使用。将在这个快速教程中向展示如何使用Plotly交互式图表与Pandas数据帧。为了保持简单,将使用Jupyter Notebook(通过Anaconda Distribution安装,带有Python)和著名的泰坦尼克号数据集。

在完成数据清洗和操作后,数据分析过程的下一步是从数据中提取有意义的见解和结论,这可以通过图表和图形来实现。Python有许多库可以用于这个目的。通常只知道两个库matplotlib和seaborn。这些库包括创建折线图、饼图、条形图、箱形图等工具。可能想知道,如果已经有了matplotlib和seaborn,为什么还需要其他的数据可视化库。当第一次听说plotly和cufflinks时,脑海中也有同样的问题。

Plotly的最新版本是5.1.0,而cufflinks的是0.17.5。由于旧版本的cufflinks不支持新发布的plotly版本,因此同时更新这两个包或找到兼容的版本至关重要。在Anaconda Prompt上运行以下命令来安装plotly(或者如果使用OS或Ubuntu,则在Terminal上):

conda install -c plotly plotly conda install -c conda-forge cufflinks-py

或者使用pip:

pip install plotly --upgrade pip install cufflinks --upgrade

加载库。首先,将加载PandasPlotly和Cufflinks库。由于plotly是一个在线平台,它需要登录凭证才能在线使用。在本文中,将使用离线模式,这对于Jupyter Notebook来说已经足够了。

import pandas as pd import cufflinks as cf import plotly.offline cf.go_offline() cf.set_config_file(offline=False, world_readable=True)

加载数据集。提到将使用泰坦尼克号数据集,可以从这个获得。只使用train.csv文件。

直方图可以用来检查特征的分布,例如这里的“Age”特征。只需使用(dataframe[“列名”])语法来选择一列,然后添加iplot函数。例如,可以指定箱大小、主题、标题和轴名称。使用“help(df.iplot)”命令,可以看到iplot参数的所有参数。

df["Age"].iplot(kind="histogram", bins=20, theme="white", title="乘客年龄",xTitle='年龄', yTitle='计数')

如果想比较两个不同的分布,可以将它们作为两个不同的列进行绘制。例如,将在同一图表中绘制女性和男性乘客的年龄。

df["male_age"]=df[df["Sex"]=="male"]["Age"] df["female_age"]=df[df["Sex"]=="female"]["Age"] df[["male_age","female_age"]].iplot(kind="histogram", bins=20, theme="white", title="乘客年龄",xTitle='年龄', yTitle='计数')

热图可以用于多种用途,但将它们用于检查数据集中特征之间的相关性作为示例。

箱线图对于快速解释数据偏斜、异常值和四分位数范围非常有用。现在将使用箱线图来显示每个泰坦尼克号等级的“Fare”分布。

df[['Pclass', 'Fare']].pivot(columns='Pclass', values='Fare').iplot(kind='box')

散点图通常用于可视化两个数值变量之间的关系。对于“Fare”和“Age”这两个变量,将使用散点图。“Categories”允许以不同的颜色显示选定特征的变量(本例中为乘客的性别)。

df.iplot(kind="scatter", theme="white",x="Age",y="Fare", categories="Sex")

快速提醒:“categories”参数必须是字符串或float64类型的列。例如,在气泡图示例中,必须将整数类型的“Survived”列转换为float64或字符串。

可以使用气泡图同时查看多个变量之间的关系。通过plotly中的“categories”和“size”参数,可以轻松调整颜色和大小子类别。通过“text”参数,还可以指定悬停文本列。

df[['Survived']] = df[['Survived']].astype('float64', copy=False) df.iplot(kind='bubble', x="Fare",y="Age",categories="Survived", size='Pclass', text='Name', xTitle='Fare', yTitle='Age')

条形图适合展示不同组的数据,这些组正在被相互比较。此外,它们可以堆叠起来显示不同变量的效果。将制作一个条形图来显示按性别分的存活乘客计数。

survived_sex = df[df['Survived']==1]['Sex'].value_counts() dead_sex = df[df['Survived']==0]['Sex'].value_counts() df1 = pd.DataFrame([survived_sex,dead_sex]) df1.index = ['Survived','Dead'] df1.iplot(kind='bar',barmode='stack', title='按性别分的生存情况')

已经尽量简化解释。希望这能让新手更容易上手plotly。Plotly还提供科学图表、3D图表、地图和动画。可以访问了解更多细节。

感谢阅读!

希望喜欢这篇文章并增加了知识。

请随时通过电子邮件与联系。

有未提及的内容或想要分享想法?请在下方留言,会回复。

关于:

Hardikkumar M. Dhaduk

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485