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

如何在Python的pandas DataFrame、Series中查找唯一文件扩展名

pandas提取CSV路径列唯一扩展名实现方案

实现思路

  • 读取CSV文件获取images_path和text_path两列路径数据
  • 对每一条路径字符串提取最后一个.后的内容作为扩展名,同时处理空值、空白字符等异常情况
  • 合并两列提取到的扩展名,去重后得到最终的唯一扩展名列表
  • 可选:统一转为小写/大写,避免JPG和jpg因大小写差异被判定为不同扩展名

完整实现代码

import pandas as pd
import os

# 替换为你的CSV文件实际路径
df = pd.read_csv("your_file_path.csv", usecols=["images_path", "text_path"])

def get_file_extension(path):
    # 过滤空路径
    if pd.isna(path):
        return None
    # 去除路径首尾空白字符,拆分获取扩展名
    ext = os.path.splitext(path.strip())[1].lstrip(".")
    # 不需要统一大小写可删除下方的.lower()
    return ext.lower() if ext else None

# 分别提取两列的扩展名
image_extensions = df["images_path"].apply(get_file_extension)
text_extensions = df["text_path"].apply(get_file_extension)

# 合并两列结果、去重、过滤空值
unique_extensions = pd.concat([image_extensions, text_extensions]).dropna().unique()

# 输出结果,也可调用.tolist()转为Python列表格式
print("所有唯一文件扩展名:")
print(unique_extensions)

可选优化(适合大数据量场景)

如果你的CSV数据量超过10万条,可以用pandas矢量化操作替代apply循环,提升处理性能:

# 替换原apply逻辑即可,其余代码不变
image_extensions = df["images_path"].str.strip()\
    .str.rsplit(".", n=1).str[-1]\
    .where(df["images_path"].str.contains("\.", na=False), None)\
    .str.lower()

text_extensions = df["text_path"].str.strip()\
    .str.rsplit(".", n=1).str[-1]\
    .where(df["text_path"].str.contains("\.", na=False), None)\
    .str.lower()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:24:04