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

Apply os.path.join method within a DataFrame

我有一个包含三列列的 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])

一个简单的解决方案是使用 os.sep 而不是 os.path.join()

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

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

  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)