基于Python pandas按列筛选开发Excel数据库时去除首列重复值
实现方案
核心逻辑
不需要逐组遍历拼接DataFrame,直接利用pandas的重复值标记功能,保留每个FromTo分组首行的取值,同组其余行的FromTo列置空即可,其余字段完全保留原始值和顺序,代码简洁且运行效率更高。
完整实现代码
import pandas as pd # 读取原始Excel文件,替换为实际文件路径 raw_df = pd.read_excel("原始数据文件.xlsx") # 标记FromTo列的重复值,每个分组仅保留第一行的取值,其余行置空 # 若需要按FromTo值排序分组,可替换为:raw_df = raw_df.sort_values(by="FromTo", ignore_index=True) raw_df["FromTo"] = raw_df["FromTo"].where(~raw_df["FromTo"].duplicated(keep="first"), "") # 按指定字段顺序输出结果文件,关闭行索引导出 output_columns = ["FromTo", "B#", "Bname", "Id", "Mend"] raw_df[output_columns].to_excel("规范格式数据库.xlsx", index=False)
可选调整项
- 若需要保持
FromTo值在原始文件中的出现顺序,不需要额外排序,直接执行重复值置空逻辑即可 - 若需要分组内按其他字段(如
Id、Mend)排序,可在置空操作前添加排序代码,例如raw_df = raw_df.sort_values(by=["FromTo", "Id"], ignore_index=True),排序后依然能保证分组首行正确显示FromTo值 - 若原始数据存在
FromTo为空的异常行,建议在读取数据后先做过滤或填充处理,避免出现分组错乱
内容的提问来源于stack exchange,提问作者The P Guy
相关产品推荐
相关产品推荐

