You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame中周期性删除特定范围的行?

按固定块规则删除DataFrame指定行

你可以通过向量化计算行位置的方式高效处理100万行的DataFrame,避免循环操作带来的性能损耗,具体步骤如下:

  1. 计算每行所属的块:以40000行为一个块,用索引整除40000得到块编号
  2. 计算每行在块内的相对位置:用索引取余40000得到块内位置(0~39999)
  3. 筛选保留块内位置≥8000的行:也就是剔除每个块的前8000行(对应你说的1-based行号18000、4000148000等)

代码示例

import pandas as pd

# 创建100万行的DataFrame(替换成你的实际数据)
df = pd.DataFrame({'col1': range(1000000)})

# 添加辅助列计算块编号和块内位置
df['block_num'] = df.index // 40000
df['pos_in_block'] = df.index % 40000

# 筛选保留行并移除辅助列
result_df = df[df['pos_in_block'] >= 8000].drop(columns=['block_num', 'pos_in_block'])

说明

  • 这种方法用pandas的向量化操作实现,处理100万行数据速度极快,远优于逐行循环删除
  • 代码自动适配Python的0-based索引,完全匹配你描述的1-based行号删除规则

内容的提问来源于stack exchange,提问作者user_scc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:51:16