python - 在 DataFrame 中应用 os.path.join 方法

标签 python pandas os.path

我有一个包含三列的 DataFrame df:['Name', 'WD', 'File']。与 'Name' 中的每个名称关联的文件在 'WD' 列中作为其工作目录给出,在 'File' 列中给出文件名>.

My df

我想使用 os.path.join() 方法加入 'WD' 列和 'File' 列,这样'File' 列显示完整路径。

我尝试了以下脚本,它工作正常,但我想知道是否有更好的方法不使用 for 循环:

for i in df.index:
    df['File'][i]=os.path.join(df['WD'][i],df['File'][i])

最佳答案

first answer非常好并且可读性最强,但只是为了完整性和可能不同的用例,这里还有两个选项:

  1. 使用 cat(连接),Pandas 的众多 string functions 之一:

    df['WD'].str.cat(df['File'], sep=os.sep)
    
  2. apply 任何行或列的函数:

    df[['WD', 'File']].apply(lambda row: os.path.join(*row), axis=1)
    

关于python - 在 DataFrame 中应用 os.path.join 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61880368/

相关文章:

python - np.add.types列出的字符是什么意思?

python - 值错误 : too many values to unpack (expected 2) in Django

python - 添加到列而不创建 NaN 值

Python数据框匹配列表中的字符串

python - 使用 2 个不同的列删除其他数据框中存在的行

python - 为什么 os.path.normpath 不删除第一个//?

python - 查找子目录路径的最有效方法

python - Python 3 中按对象迭代

python - pywinpty 的构建轮 (pyproject.toml) ...安装 jupyter 笔记本时出错?

python - os.path.join() 只接受一个参数(给定 2 个)