📅  最后修改于: 2023-12-03 15:32:26.835000             🧑  作者: Mango
在数据分析和可视化中,交叉表是一个非常有用的工具。它可以用来提供数据的摘要和汇总,从而帮助我们更好地理解数据和洞察数据之间的关系。而在 Jupyter Notebook 中,我们可以通过 Pandas 库中的 crosstab()
函数来轻松地创建交叉表,同时通过 styler
对象来进行美化和自定义。
首先,我们来看看如何创建一个简单的交叉表。假设我们有一组数据,包含了家庭成员的性别和吸烟信息。我们可以用下面的代码来创建这个数据集:
import pandas as pd
data = {'gender': ['M','M','F','M','F','F','F','M'],
'smoker': ['Y','N','N','Y','N','N','Y','N']}
df = pd.DataFrame(data)
接下来,我们可以使用 Pandas 的 crosstab()
函数来创建一个简单的交叉表:
pd.crosstab(df.gender, df.smoker)
这会得到如下的结果:
| smoker | N | Y | | ------ | - | - | | gender | | | | F | 2 | 2 | | M | 2 | 2 |
这个交叉表告诉我们,在这个数据集中,有多少个女性吸烟或不吸烟,有多少个男性吸烟或不吸烟。
除了上面的简单交叉表,我们还可以创建标准的交叉表,可以显示每一行和每一列中的百分比,这对于理解数据之间的关系非常有帮助。我们可以通过以下代码来创建标准的交叉表:
pd.crosstab(df.gender, df.smoker, normalize='index')
这会得到如下的结果:
| smoker | N | Y | | ------ | -- | -- | | gender | | | | F | 0.5 | 0.5 | | M | 0.5 | 0.5 |
这个交叉表告诉我们,在所有女性中,有50%的人吸烟,在所有男性中也有50%的人吸烟。
最后,我们来看看如何使用 styler 对象自定义样式,以使交叉表更易于阅读和理解。我们可以使用以下代码来创建一个自定义格式的交叉表:
pd.crosstab(df.gender, df.smoker, normalize='index').style.background_gradient(cmap='coolwarm')
这会得到如下的结果:
这个交叉表中,每个单元格的颜色表示该单元格的值相对于该行所有值的大小。我们可以通过修改 cmap
参数来更改渐变的颜色。
通过使用 Pandas 库中的 crosstab()
函数和 styler 对象,我们可以轻松地创建和自定义漂亮的交叉表。这对于数据分析和可视化来说是一个非常有用的工具,同时也有助于我们更加深入地了解数据之间的关系。