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

3 投票
2 回答
3818 浏览
提问于 2025-06-18 04:11

我有一个数据表 df,里面有三列,分别是 ['Name', 'WD', 'File']。每个名字在 'Name' 列对应的文件,都是在 'WD' 列的工作目录和 'File' 列的文件名中给出的。

这是我的数据表

我想把 'WD' 列和 'File' 列合并起来,使用 os.path.join() 方法,这样 'File' 列就能显示完整的路径。

我试过下面的代码,它能正常工作,但我在想有没有更好的方法,不用 for 循环:

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

相关问题:

  • 暂无相关问题
暂无标签

2 个回答

9

第一个回答非常好,而且很容易理解,但为了完整性和适应不同的使用场景,这里再提供两个选项:

  1. 使用 cat(连接),这是Pandas众多 字符串函数之一:

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

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

一个简单的解决办法是用 os.sep 来代替 os.path.join()

>>> df["Path"] = df["WD"] + os.sep + df["File"]

撰写回答