Python 在数据帧中应用os.path.join方法

Python 在数据帧中应用os.path.join方法,python,pandas,os.path,Python,Pandas,Os.path,我有一个数据框df,有三列:['Name','WD','File']。与'name'中每个名称相关联的文件在'WD'列中作为其工作目录,在'file'列中作为文件名 我想使用os.path.join()方法加入'WD'列和'File'列,以便'File'列显示完整路径 我尝试了以下脚本,效果不错,但我想知道是否有更好的方法不使用for循环: for i in df.index: df['File'][i]=os.path.join(df['WD'][i],df['File'][i])

我有一个数据框
df
,有三列:
['Name','WD','File']
。与
'name'
中每个名称相关联的文件在
'WD'
列中作为其工作目录,在
'file'
列中作为文件名

我想使用
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”]

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

>>df[“Path”]=df[“WD”]+os.sep+df[“File”]
非常好,可读性最好,但为了完整性和不同的用例,这里还有两个选项:

  • 使用Pandas众多产品之一的
    cat
    (串联):

  • 对行或列执行的任何函数:

    df[['WD', 'File']].apply(lambda row: os.path.join(*row), axis=1)
    
  • 这是非常好的,也是最可读的,但是为了完整性和可能不同的用例,这里还有两个选项:

  • 使用Pandas众多产品之一的
    cat
    (串联):

  • 对行或列执行的任何函数:

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

  • 谢谢这两种选择都奏效了。将在其他使用条件下使用这些方法。谢谢。这两种选择都奏效了。将这些方法用于其他使用条件。