如何用切片或Pandas函数删除CSV表格中每8行的后4行?
解决CSV文件按规则删除行的问题
需求明确:每8行中保留前4行、删除后4行,处理总共有3089行的CSV文件。以下是两种高效实现方式:
方法一:Pandas布尔索引(推荐)
利用行索引的模运算快速筛选需要保留的行:
import pandas as pd # 读取CSV文件 df = pd.read_csv('your_input.csv') # 生成筛选条件:索引除以8余数小于4的行保留 keep_mask = df.index % 8 < 4 filtered_df = df[keep_mask] # 保存处理后的文件 filtered_df.to_csv('your_output.csv', index=False)
原理:每行索引对8取余,余数0-3对应每组8行的前4行,直接保留这些行即可。
方法二:分块切片拼接
通过循环分割数据块,取每个块的前4行拼接结果,逻辑更直观:
import pandas as pd df = pd.read_csv('your_input.csv') result = pd.DataFrame() # 按8行步长遍历所有行 for start in range(0, len(df), 8): # 取当前块的前4行(即使最后一块不足8行也能正确处理) chunk = df[start:start+4] result = pd.concat([result, chunk], ignore_index=True) result.to_csv('your_output.csv', index=False)
这种方式会自动处理最后一组不足8行的情况(3089行最后会剩下1行,直接保留)。
内容的提问来源于stack exchange,提问作者Almas
相关产品推荐
相关产品推荐

