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

如何使用Pandas替换DataFrame某列每行中的目录路径?

解决DataFrame中Filename列目录替换的问题

嘿,我来帮你搞定这个路径替换的问题~你之前的代码之所以没达到预期效果,是因为os.path.dirname(df['Filename'])是把整个Series对象传给了os.path.dirname,但这个函数只能处理单个字符串路径,没法直接作用于整个Series。下面给你两种靠谱的解决方案:

方法一:用apply结合os.path工具函数(推荐)

这个方法跨平台兼容性最好,os.path.join会自动处理不同系统的路径分隔符:

import os
import pandas as pd

# 假设你的DataFrame是df
dst = "/home/mycomp/Images"
df['Filename'] = df['Filename'].apply(lambda x: os.path.join(dst, os.path.basename(x)))

原理很简单:对Filename列的每一个路径,先用os.path.basename提取文件名部分,再用os.path.join把目标目录和文件名拼接成新路径。

方法二:用字符串的str方法

如果你确定所有路径都是Unix风格的分隔符,也可以用更简洁的字符串操作:

dst = "/home/mycomp/Images"
df['Filename'] = dst + '/' + df['Filename'].str.basename()

或者用正则表达式批量替换原路径的目录部分:

import re
df['Filename'] = df['Filename'].str.replace(r'.*/', dst + '/', regex=True)

这里的正则.*\/会匹配最后一个斜杠之前的所有内容,替换成目标目录加斜杠,剩下的就是文件名了。

举个实际效果的例子:原路径/var/www/html/projects/Bundesliga/Match1/STAR_SPORTS_2-20170924-200043-210917-00001.jpg,处理后会变成/home/mycomp/Images/STAR_SPORTS_2-20170924-200043-210917-00001.jpg,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:26:25