共计 2467 个字符,预计需要花费 7 分钟才能阅读完成。
JupyterLab 是 Jupyter Notebook 的升级版。
安装:pip install jupyterlab
,启动:jupyter lab
。
JupyterLab 官网:https://jupyter.org/
默认文件保存路径
查看 JupyterLab 默认文件保存路径:
import os
os.path.abspath('.')
快捷键
编辑模式快捷键
编辑模式即 cell 编辑模式,可使用以下快捷键:
快捷键 | 作用 | 说明 |
---|---|---|
Esc | 切换到命令模式 | |
Ctrl+Enter | 运行本单元 | |
Shift+Enter | 运行本单元,选中下一单元 | 新单元默认为命令模式 |
Alt+Enter | 运行本单元,在下面插入一单元 | 新单元默认为编辑模式 |
Ctrl+Up | 跳到单元开头,或者 Ctrl+Home | |
Ctrl+Down | 跳到单元末尾,或者 Ctrl+End | |
Ctrl+Left | 跳到左边一个字首 | |
Ctrl+Right | 跳到右边一个字首 |
命令模式快捷键
退出 cell 编辑模式,即可使用命令模式快捷键:
快捷键 | 作用 | 说明 |
---|---|---|
Enter | 进入编辑模式 | |
Y | 单元转入 code 状态 | |
M | 单元转入 markdown 状态 | |
R | 单元转入 raw 状态 | |
1 | 设定 1 级标题 | 仅在 markdown 状态下时建议使用,如果单元处于其他状态,则会强制切换到 markdown 状态 |
代码格式化
JupyterLab 本身并不支持代码格式化,需要安装 jupyterlab_code_formatter 插件:pip install jupyterlab_code_formatter
。
插件 jupyterlab_code_formatter 支持 Python 常见的代码格式化包,如 autopep8、black、isort 等,
插件安装完成后,需要安装 Python 代码格式化包。
插件默认支持 isort 和 black 包,安装这两个包后续会避免很多问题,安装命令:pip install black isort
。
重启 JupyterLab,点击 JupyterLab 左侧栏插件图标,在 INSTALLED 列表下,可看到 jupyterlab_code_formatter 已安装。
格式化方式
最简单的方式是通过鼠标右键菜单来格式化代码:右键 -> Format cell。
也可通过工具栏按钮来格式化代码,在笔记本上方工具栏中有一个格式化按钮。单击按钮会对单元格进行代码格式化。
另外,可以设置保存笔记本自动格式化代码:Settings -> Settings Editor -> Jupyterlab Code Formatter -> Auto format config。
使用
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
## 行命令,将图表直接嵌入到 Notebook 之中
%matplotlib inline
# 1. 加载数据
data1=pd.read_excel('1.xlsx', sheet_name='sheet1')
data2=pd.read_excel('2.xlsx', sheet_name='sheet2')
data=pd.concat([data1,data2], axis=0) # 按行拼接
data.head(5)
data.info()
# 2. 数据清洗
# 2.1 数据预处理(重复值、缺失值、格式调整)data.drop_duplicates(keep='first', inplace=True) # 删除重复记录
data.dropna(axis=1, inplace=True) # 按列删除 NA 列并修改源数据
data.dropna(axis=0, how='any', inplace=True) # 删除有 NA 的整行数据
# 格式调整
def data_deal(number):
new_number += 1
return new_number
data['新列'] = data['列'].map(data_deal)
## 2.2 异常值处理
data.describe()
data = data[data['金额'] != 0] # 数据量小可以采用直接删除
data.drop(columns=['列'], inplace=True, axis=1) # 删除列
data.reset_index(drop=True, inplace=True) # 更新索引
# 3. 数据规整
## 时间提取
data['time'] = pd.to_datetime(data['字符串时间'])
data['hour'] = data['time'].dt.hour
data['minute'] = data['time'].dt.minute
data['month'] = data['time'].dt.month
# 4. 数据分析
round(data['列'].mean(), 2) # 求平均
dishes_count = data['列'].value_counts()[:10] # 频数统计,取前 10
# 分组求和
group_sum = data[['列 1', '列 2', '列 3']].groupby(by='列 1').sum()
sort_counts = group_sum.sort_values(by='列', ascending=False) # 降序排序
data['列'] = data['列'].str.strip()
data.groupby(['月份', '列']).size().unstack()
# 5. 数据可视化
dishes_count.plot(kind='line', color=['r']) # 折线图
dishes_count.plot(kind='bar', fontsize=16, color=['r','b', 'g']) # 直方图
plt.title('标题')
plt.xlabel('x 轴', fontsize=16)
plt.ylabel('y 轴', fontsize=16)
for x,y in enumerate(dishes_count):
plt.text(x, y+2, y, ha='center', fontsize=12) # 水平居中显示