You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas在列表中查找字符串并导出布尔标记列?

标准实现方法:基于黑名单标记CSV中的文件路径

嘿,刚接触Python就能写出输出布尔值的代码已经超棒啦!针对你这个给CSV文件路径添加黑名单标记的需求,我分享两个实际项目里常用的标准实现思路,你可以根据自己的场景选~

方法一:用Pandas实现(推荐,简洁高效)

处理CSV文件最常用的就是Pandas库,代码简洁易读,适合快速实现需求。

步骤说明:

  • 先安装Pandas(如果还没装的话):pip install pandas
  • 读取CSV文件
  • 定义你的黑名单词汇列表
  • 写一个辅助函数,检查单个路径是否包含黑名单里的任意词汇
  • 用apply方法给DataFrame添加新的标记列
  • 最后保存处理后的CSV

代码示例:

import pandas as pd

# 1. 定义黑名单词汇
blacklist = ["cow", "dog", "secret"]

# 2. 读取CSV文件(假设你的CSV里有一列叫'file_path')
df = pd.read_csv("your_files.csv")

# 3. 定义检查函数,支持大小写忽略(可选,根据需求调整)
def contains_blacklist(path):
    # 转成小写避免大小写问题,比如"Cow"也能被匹配到
    lower_path = path.lower()
    return any(word.lower() in lower_path for word in blacklist)

# 4. 添加标记列,这里用布尔值True/False,也可以改成1/0
df["is_blacklisted"] = df["file_path"].apply(contains_blacklist)

# 5. 保存处理后的CSV
df.to_csv("marked_files.csv", index=False)

方法二:基础Python实现(无需第三方库,适合理解底层)

如果不想用Pandas,用Python内置的csv模块也能实现,适合新手搞懂每一步的逻辑。

代码示例:

import csv

blacklist = ["cow", "dog", "secret"]

# 读取原CSV并处理
with open("your_files.csv", "r", newline="", encoding="utf-8") as infile, \
     open("marked_files.csv", "w", newline="", encoding="utf-8") as outfile:
    
    reader = csv.DictReader(infile)
    # 给表头添加新的标记列
    fieldnames = reader.fieldnames + ["is_blacklisted"]
    writer = csv.DictWriter(outfile, fieldnames=fieldnames)
    
    writer.writeheader()
    
    for row in reader:
        file_path = row["file_path"]
        # 检查是否包含黑名单词汇,同样可选大小写忽略
        is_blacklisted = any(word.lower() in file_path.lower() for word in blacklist)
        # 把布尔值转成1/0的话,改成int(is_blacklisted)就行
        row["is_blacklisted"] = is_blacklisted
        writer.writerow(row)

额外小贴士:

  • 如果需要精确匹配(比如不想把"cows"当成包含"cow"),可以把路径用os.path.split()拆分后,检查拆分出的文件夹/文件名是否完全匹配黑名单词汇。
  • 黑名单词汇如果有特殊字符(比如.、*),要是后续用正则匹配的话,记得用re.escape()处理,避免匹配异常。

内容的提问来源于stack exchange,提问作者khabaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:48:05