如何在Jupyter Notebook中按DataFrame行数控制代码执行?
实现DataFrame行数检查的执行控制逻辑
更简洁的行数统计方式
你当前用的两种统计方法可行,但还有更直接高效的方案:
rows_count = len(df1.index):直接获取DataFrame真实总行数,不受空值影响,直观高效rows_count = df1.shape[0]:通过shape属性快速取行数(shape[1]对应列数)
执行控制逻辑的三种实现方式
1. 条件判断包裹代码块
这是最常用的方式,满足行数要求才执行后续代码:
# 任选一种行数统计方式 rows_count = len(df1.index) # rows_count = df1.count()[0] # rows_count = df1[df1.columns[0]].count() if rows_count >= 100: # 此处编写所有后续执行的代码 print("行数达标,开始执行后续逻辑") # 示例操作:数据清洗、特征工程等 processed_df = df1.drop_duplicates() # ...其他业务代码 else: print(f"行数不足,当前仅{rows_count}行,无法执行后续操作")
2. 抛出异常终止执行
如果行数不达标时需要直接终止单元格运行,可主动抛出异常:
rows_count = df1.shape[0] if rows_count < 100: raise ValueError(f"DataFrame行数不符合要求:当前{rows_count}行,需≥100行") # 只有行数达标时才会执行以下代码 print("行数校验通过,继续处理数据") # ...后续代码逻辑
3. 使用断言快速校验
适合调试阶段,断言失败会直接终止执行,无需额外分支:
rows_count = df1[df1.columns[0]].count() assert rows_count >= 100, f"行数校验失败:{rows_count} < 100" # 断言通过后执行后续代码 # ...你的业务处理代码
关键提示
使用count()方法统计时,会自动忽略列中的空值(NaN),如果第一列存在缺失值,统计结果会小于真实总行数。若需要获取真实总行数,优先使用len(df1.index)或df1.shape[0]。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

