作者:Peter 编辑:Peter
大家好,我是Peter~
今天给大家介绍一个Peter日常操作jupyter使用技巧:如何在jupyter notebook中玩转Markdown目录。
基本上在个人jupyter的每个ipynb文件都会使用,最终效果长这个样子:
也可以是长成这个样子:
安装扩展
为了更好地使用,首先必须在电脑上安装扩展插件:
代码语言:python代码运行次数:0复制# 安装Jupyter的配置器
pip install jupyter_nbextensions_configurator
# 启动配置器
jupyter nbextensions_configurator enable --user
安装之后启动电脑的notebook,会看到:
1、Nbextensions选项(不安装插件是没有的)
2、进入该功能:勾选3个与Markdown和目录相关的选项
下面是正式的使用说明:我们以plotly可视化中自带的一份tips数据集来说明。最终的目录效果为:
导入数据
In 1:
代码语言:txt复制# 导入库
import pandas as pd
import numpy as np
import plotly_express as px
In 2:
代码语言:txt复制# 导入plotly库自带的tips数据集
df = px.data.tips()
df.head()
数据基本信息
In 3:
代码语言:txt复制df.shape # 数据shape信息
Out3:
代码语言:txt复制(244, 7)
In 4:
代码语言:txt复制df.dtypes # 字段类型
Out4:
代码语言:txt复制total_bill float64
tip float64
sex object
smoker object
day object
time object
size int64
dtype: object
In 5:
代码语言:txt复制df.isnull().sum() # 缺失值统计
Out5:
代码语言:txt复制total_bill 0
tip 0
sex 0
smoker 0
day 0
time 0
size 0
dtype: int64
In 6:
代码语言:txt复制df.describe() # 描述统计信息
统计与可视化分析
sex性别统计
In 7:
代码语言:txt复制df1 = df["sex"].value_counts().reset_index()
df1.columns = ["sex", "number"]
df1
Out7:
sex | number | |
---|---|---|
0 | Male | 157 |
1 | Female | 87 |
In 8:
代码语言:txt复制# 绘图
fig = px.bar(df1, x="sex", y="number")
fig.show()
top_bill和tip的分布
total_bill分布
In 9:
代码语言:txt复制fig = px.violin(df,y="total_bill",color="day")
fig.show()
tip分布
In 10:
代码语言:txt复制fig = px.box(df,y="tip",color="day")
fig.show()
不同条件下的二者分布
In 11:
代码语言:txt复制fig = px.scatter(df,
x="tip", # 小费
y="total_bill", # 总消费
size="total_bill", # 大小使用total_bill字段信息
color="day")
fig.show()
不同sex和smoker下total_bill统计
In 12:
代码语言:txt复制df3 = df.groupby(["sex","smoker"])["total_bill"].sum().reset_index()
df3
Out12:
sex | smoker | total_bill | |
---|---|---|---|
0 | Female | No | 977.68 |
1 | Female | Yes | 593.27 |
2 | Male | No | 1919.75 |
3 | Male | Yes | 1337.07 |
In 13:
代码语言:txt复制# 可视化
fig = px.bar(df3,
x="sex",
y="total_bill",
color="smoker",
barmode="group"
)
fig.show()
不同day、time和sex下的total_bill
In 14:
代码语言:python代码运行次数:0复制fig = px.treemap(
df, # 传入数据
path=[px.Constant("all"),"day","time","sex"], # 重点:传递数据路径
values="tip" # 数值显示使用哪个字段
)
fig.update_traces(root_color="lightskyblue")
fig.update_layout(margin=dict(t=30,l=20,r=25,b=30))
fig.show()
玩转目录
上面已经生成了最终的目录效果,下面讲解下如何玩转这个目录:
是否添加编号
1、当前效果没有编号,点击【齿轮】
2、添加目录编号
自动添加目录编号,点击【OK】
3、具有编号的目录
我们可以看到添加了编号之后能够看到不同的层级:包含父级和子级目录,有点类似Word的一级、二级目录等
目录跳转
单击左侧任何一个层级的目录,会自动跳转到单元格的指定位置
正文部分添加目录
1、当前的效果中文是没有目录的:
2、单击上面提到的齿轮
勾选下面的add notebook ToC cell,并自定义名称:
3、新效果展示
同样的单击目录【红框中】的任何一级目录,也是可以跳转到指定的位置
这个功能我一般不使用,习惯了左侧的目录