如何用Python筛选Excel中无(FTTH)开头/结尾Name的ID
用Python筛选符合条件的Excel ID
完全可以用Python实现这个需求,借助pandas库就能高效完成,具体步骤和代码如下:
步骤说明
- 先安装所需依赖(如果未安装):执行
pip install pandas openpyxl,openpyxl用于读取xlsx格式的Excel文件。 - 读取目标Excel文件。
- 定义判断规则:检查单个Name条目是否既不以
(FTTH)开头,也不以(FTTH)结尾。 - 按ID分组,筛选出组内所有Name都符合规则的ID。
- 输出或保存结果。
代码示例
import pandas as pd # 替换为你的Excel文件路径 df = pd.read_excel("your_excel_file.xlsx", engine="openpyxl") # 判断单个Name是否符合要求 def check_name_validity(name): return not (name.startswith("(FTTH)") or name.endswith("(FTTH)")) # 按ID分组,筛选出所有Name都符合条件的ID qualified_ids = df.groupby("ID").filter( lambda group: group["Name"].apply(check_name_validity).all() )["ID"].unique() # 打印结果 print("符合条件的ID:", qualified_ids) # 可选:将结果保存为新的Excel文件 # pd.DataFrame(qualified_ids, columns=["ID"]).to_excel("qualified_ids.xlsx", index=False)
代码解释
groupby("ID").filter():按ID将数据分组后,保留满足筛选条件的组。group["Name"].apply(check_name_validity).all():检查当前组内的所有Name条目是否都符合规则,all()确保组内无例外。unique():去除重复的ID,得到最终的唯一有效ID列表。
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

