【Python征稿】整理评论分析 Notebook 时,这 10 个快捷键帮我少走了很多弯路

8 0
EDGE 发表于 2026-8-25 08:50:07 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这次整理评论数据时,清洗、统计标签数量、画图和看中间结果都放在 Jupyter Notebook 里完成。刚开始的问题不是不会写 pandas,而是 Notebook 越写越乱:运行顺序混乱、测试代码散落、调图时不知道当前执行的是哪一版。后来把几个高频快捷键用熟后,分析过程才真正变得连贯。
一、Shift + Enter:最常用的“往下跑一格”6 |* g/ n. d! U
Shift + Enter 的作用是运行当前单元格,并自动跳到下一格。读取数据后,第一步不要马上清洗,先确认文件到底读对没有。文件即使没有报错,也可能出现列名不对、编码不对或行数明显减少的问题。先看 shape 和 columns,比画完图才发现数据异常更省事。
  1. import pandas as pd
    $ m9 T5 u& f% H% i
  2. df = pd.read_csv('评论分析_脱敏数据.csv', encoding='utf-8-sig')/ `$ t: x$ \1 m
  3. print('数据维度:', df.shape)  ~: P5 \1 ?' U: {& l
  4. print('字段名称:', df.columns.tolist())
    / f# o3 {' p9 ?7 ~4 T- @
  5. print(df.head(3))
    ; ~5 T8 |. a2 S
  6. print(df.isna().sum())
    / U( j) _/ e9 [. E7 q
  7. empty_content = df['content'].fillna('').str.strip().eq('').sum()
    , k# |& ]6 }" b; S
  8. print('空正文数量:', empty_content)
复制代码
这种“读取 → 核验 → 清洗”的连续步骤,用 Shift + Enter 最顺手。
二、Ctrl + Enter:调图时不要把整本 Notebook 跑乱
3 @4 y8 O* \9 V  F9 N8 H9 U7 e
Ctrl + Enter 只运行当前单元格,不跳到下一格。调图时颜色、标题、尺寸和柱顶数字往往要改很多次;如果每次都按 Shift + Enter,光标会不断跳到后面的单元格,容易误运行不相关代码。
  1. import matplotlib.pyplot as plt
    0 O+ V  ^6 ~+ r3 U4 c* s1 _
  2. ' U- a& B  h$ {  J9 `& E9 H* O" k
  3. counts = df['sentiment'].value_counts()
    ! v+ m; \/ ?3 \2 y( G8 J: Q2 T
  4. fig, ax = plt.subplots(figsize=(7, 4))
    $ U- t8 Z2 z1 x
  5. bars = ax.bar(counts.index, counts.values, color=['#4C78A8', '#E45756'])
    / X* q5 K9 z  M: f* Y
  6. ax.set_title('评论情感标签数量分布'). C" ?9 a3 J  h% X
  7. ax.set_xlabel('情感标签')
    + @' y  O. }( P& e5 m. Q
  8. ax.set_ylabel('评论条数')
    & H' w/ n7 G; ]7 J4 `
  9. for bar, value in zip(bars, counts.values):) v, y+ k7 P& X( Q
  10.     ax.text(bar.get_x() + bar.get_width() / 2, value, str(value),
    # L$ s/ @1 h. _) k  F  G# O
  11.             ha='center', va='bottom'): V; h  u+ f1 E7 X" t
  12. + N6 f7 L6 d& b, O# P
  13. plt.tight_layout()* P" z( X$ o. o- {0 h3 A: w
  14. plt.show()
复制代码
图调不好时,很多问题并不在 matplotlib,而在于不知道当前运行的是哪一格代码。用 Ctrl + Enter 可以一直停在绘图格里反复验证。
三、Alt + Enter:临时验证一个想法时,马上加一格3 v& G2 {/ E5 i& _2 K8 T
Alt + Enter 会运行当前单元格,并在下面新建一个代码格。已经统计出正负标签数量后,如果想确认每类评论的平均长度,不需要打断原来的流程,可以直接在结果下面临时插入一格。
  1. df['char_len'] = (0 s! n$ J- }8 b& z) @4 s7 B' t5 ]
  2.     df['content'].fillna('').astype(str)
    , L+ _; e2 t7 B
  3.       .str.replace(r'\s+', '', regex=True).str.len()% `! d6 n9 N, n+ ?  N" @' [, }  T
  4. )! @/ C4 }6 ]  U. R
  5. # j8 e$ C" n4 }' I$ M5 X
  6. length_summary = (
    ! @; c, i+ l: N( ?5 u4 w3 \, p
  7.     df.groupby('sentiment')['char_len']- P" Q# T  ^$ x2 p/ s. K( L8 c
  8.       .agg(['count', 'mean', 'median', 'max'])
    9 O; b( B: ]% k, b1 f
  9. )* E: P7 V+ |3 ]8 B1 {$ z
  10. print(length_summary)
复制代码
先用新单元格测试,确认结果有价值后再整理进正式流程,Notebook 不会越写越乱。
四、Esc 和 Enter:很多快捷键失灵,其实是模式不对; c# X3 a  X1 g4 G& x
Notebook 有两种常用状态:Enter 进入编辑模式,用来输入或修改代码;Esc 进入命令模式,用来插入、删除、移动或转换单元格。A、B、M、Y 没反应时,通常是还停在编辑模式。简单记法:要改代码按 Enter,要管理单元格按 Esc。
五、A 和 B:把 Notebook 拆成真正能读懂的分析过程
, c- ~4 z6 x) S' v. x5 k' F! [! X
按 Esc 后,A 在当前格上方插入单元格,B 在下方插入单元格。评论分析通常可以按“导入库、读取数据、检查字段、清洗、去重、统计、画图、导出”的顺序组织。若后来发现缺少去重前后对比,就回到去重单元格按 B 补一格,不要把代码硬塞到最后。
  1. before = len(df)
    . E: W( {* p" s: }/ v! q
  2. df = df.drop_duplicates(subset=['content']).reset_index(drop=True)
    - L' P+ C$ n9 g5 B% l! s! C
  3. after = len(df)
    ( t* |( _7 e* s; G8 |9 P

  4. & k4 J- G4 Q7 R$ J
  5. print('去重前:', before)
    ) J0 ^) h: D5 b- O7 A& ?3 K# b
  6. print('去重后:', after)
    # A6 h; {) b% p  E
  7. print('删除重复记录:', before - after)
复制代码
5 h0 H- v# D+ l( k  N# c9 \
六、M:把关键判断写成说明,避免过几天忘了为什么这样处理
" S3 w- j7 u3 x- ]  W, I4 S$ l
按 Esc 后按 M,可以把代码格转换成 Markdown 格。数据分析里最容易丢的不是代码,而是判断过程:为什么删空正文、为什么评分用中位数补、为什么不直接 dropna。关键位置写一两句说明,后面复现、演示或整理投稿时都更方便。
### 数据清洗说明
; `2 {1 |+ f# e% w% E0 i8 o8 Z- 正文为空的记录无法用于分词,删除;
  {# {4 h9 D. J' }- 评分缺失先保留标记,再决定是否补齐;/ j) l/ d% w) o, }8 b3 z
- 情感标签为空时标记为 unknown,不直接猜测;( |2 x8 ?/ j5 X2 K  v
- 去重按清洗后的正文进行。
七、Y:测试完说明后,快速切回代码格
5 Z# ^( f1 e/ {; R: M7 Y% R& `
Y 可以把当前单元格转回代码格。例如先用 Markdown 写下“待检查:评分列是否能全部转换为数值”,确认需要处理后,按 Esc 再按 Y,直接改成下面的代码,不必重新插入单元格。
  1. df['rating'] = pd.to_numeric(df['rating'], errors='coerce')
    + A1 D* j! P! \' m% q0 v
  2. print('评分缺失:', df['rating'].isna().sum())
复制代码
八、D、D:删除测试格前,先确认它没有影响后面的变量
/ P9 u& U* o- G0 y, ~+ G: \
按 Esc 后连按两次 D,可以删除当前单元格。这个快捷键很快,但也容易误删。尤其是测试格很多时,要先看它是否定义了后面依赖的变量。
stop_words = {'这个', '那个', '然后', '就是'}
如果后面的分词代码还要用 stop_words,删掉定义单元格后,重新运行就会出现 NameError。测试代码可以删,但读取数据、清洗步骤和关键变量定义最好固定在前面。
九、H:记不住快捷键时,不要硬背
8 s6 e4 O5 ~' i; x4 K2 K: r# `
按 Esc 后按 H,可以打开快捷键帮助。刚开始没必要一次记住全部快捷键。Shift + Enter、Ctrl + Enter、Alt + Enter、Esc / Enter、A / B、M / Y、D / D 和 Ctrl + S,已经覆盖大部分数据分析场景。
十、Ctrl + S:跑长任务前一定保存/ [9 t6 c; c6 q, ?# J5 L
Ctrl + S 是最简单但很容易忽略的一个。读完数据并确认字段后、清洗去重完成后、图表确认后,以及运行分词、LDA 或模型训练前,都建议保存一次。基础统计重新跑不难,但任务变长、变量变多后,阶段性保存能避免很多重复操作。
总结% M5 R. w: _, j% {. x
Notebook 快捷键不会让分析结果自动更准确,但能让过程更清楚、可复现,也更不容易因为运行顺序混乱而浪费时间。刚开始可以先练 Shift + Enter 连续跑流程、Ctrl + Enter 原地调图、Esc / Enter 切换模式、A / B 补充单元格、M 写清判断依据、Ctrl + S 保存阶段结果。
关键词
! Q- P4 l; ?4 V9 h( _
Jupyter Notebook;Python;快捷键;pandas;评论数据分析;数据清洗

1 z2 `) f  l* `! v3 E0 l, D$ E
回复 转播

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

学研领航向全体高校师生打造的一站式综合交流与资源服务平台,集知识学习、经验分享、资源下载、互动问答、职场成长、兼职实践于一体,覆盖校园生活、专业学习、求职就业、兴趣发展等全场景需求。

快捷导航

小黑屋
Copyright © 2026 学研领航 版权所有 陕ICP备2025077879号-1
关灯 在本版发帖 返回顶部
快速回复 返回顶部 返回列表