如何移除数据集的最后20%数据行?
移除数据集最后20%数据行的实现方法
下面是几种常用工具的具体实现方案,按需选择:
Python Pandas 方案
适用于大多数结构化数据集(如CSV、Excel等),操作简单直观:
import pandas as pd # 读取数据集(以CSV为例,其他格式可替换为pd.read_excel等) df = pd.read_csv('your_dataset.csv') # 计算需保留的行数:总行数的80%,这里用int()向下取整,也可改用round()四舍五入 keep_count = int(len(df) * 0.8) # 截取前keep_count行 trimmed_df = df.head(keep_count) # 保存处理后的数据集,index=False避免生成额外索引列 trimmed_df.to_csv('trimmed_dataset.csv', index=False)
R语言 方案
适合R生态下的数据处理场景:
# 读取CSV数据集 df <- read.csv("your_dataset.csv") # 计算保留行数,floor()用于向下取整,也可改用round() keep_count <- floor(nrow(df) * 0.8) # 截取前keep_count行 trimmed_df <- df[1:keep_count, ] # 保存处理后的数据,row.names=FALSE避免写入行名 write.csv(trimmed_df, "trimmed_dataset.csv", row.names = FALSE)
命令行(awk/head)方案
适合处理超大文本数据集,无需加载全量数据到内存:
# 第一步:获取总行数并计算需保留的行数 total_lines=$(wc -l < your_dataset.csv) keep_lines=$(echo "$total_lines * 0.8" | bc | awk '{print int($1)}') # 情况1:数据集有表头(保留第一行表头,再取后续keep_lines-1行) head -n 1 your_dataset.csv > trimmed_dataset.csv head -n $keep_lines your_dataset.csv | tail -n +2 >> trimmed_dataset.csv # 情况2:数据集无表头(直接取前keep_lines行) # head -n $keep_lines your_dataset.csv > trimmed_dataset.csv
注意事项
- 若总行数的20%不是整数,可根据需求选择向下取整(
int()/floor())或四舍五入(round()); - 处理带表头的数据集时,务必确保表头不被误删;
- 超大文件优先使用命令行方案,避免内存溢出。
内容的提问来源于stack exchange,提问作者David95
相关产品推荐
相关产品推荐

