如何基于日期删除表格行,保留零件最新安装记录
如何保留表格中每个零件的最新安装记录?
针对你有6000+行、存在重复零件序列号的表格,需要只保留每个零件最新安装日期的记录,以下是几种实用的解决方法:
方法一:Excel/Google Sheets 可视化操作
适合不熟悉代码的场景,步骤清晰易操作:
- 统一日期格式:选中
Installed Date列,设置单元格格式为「日期」,确保系统能识别日期排序规则。 - 双重排序:选中整个数据区域(含表头),点击「数据」→「排序」:
- 主要关键字选
Part Serial Number,排序方式升序 - 次要关键字选
Installed Date,排序方式降序
排序后,每个零件的最新记录会排在该组的最上方。
- 主要关键字选
- 标记并删除重复项:新增一列(比如E列),在E2单元格输入公式:
=IF(D2=D1,"重复","保留"),下拉填充整列。然后筛选E列,只保留「保留」的行,删除其余行即可。
方法二:Python 脚本批量处理(高效适合大数据)
如果数据量较大,用代码处理更快捷,依赖pandas库:
import pandas as pd # 读取表格(Excel用pd.read_excel,CSV用pd.read_csv) df = pd.read_csv("parts_table.csv") # 转换日期列为可识别格式 df["Installed Date"] = pd.to_datetime(df["Installed Date"]) # 按零件分组,提取每个组中安装日期最新的行 latest_parts = df.loc[df.groupby("Part Serial Number")["Installed Date"].idxmax()] # 保存结果到新文件 latest_parts.to_csv("latest_parts.csv", index=False)
这段代码会自动筛选出每个零件序列号对应的最新安装记录,无需手动排序或筛选。
方法三:SQL 查询(数据存储在数据库时)
如果表格数据存在数据库中,直接用SQL语句查询结果:
SELECT t.* FROM parts_table t INNER JOIN ( SELECT `Part Serial Number`, MAX(`Installed Date`) AS latest_install_date FROM parts_table GROUP BY `Part Serial Number` ) AS sub_query ON t.`Part Serial Number` = sub_query.`Part Serial Number` AND t.`Installed Date` = sub_query.latest_install_date;
子查询先统计每个零件的最新安装日期,再关联原表取出对应的完整记录。
内容的提问来源于stack exchange,提问作者Dave V
相关产品推荐
相关产品推荐

