在 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"]
非常好并且可读性最强,但为了完整性和可能不同的用例,这里还有两个选项:
使用cat
(连接),Pandas' 多个string functions之一:
df['WD'].str.cat(df['File'], sep=os.sep)
apply
任意函数到行或列:
df[['WD', 'File']].apply(lambda row: os.path.join(*row), axis=1)
我有一个包含三列列的 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"]
使用
cat
(连接),Pandas' 多个string functions之一:df['WD'].str.cat(df['File'], sep=os.sep)
apply
任意函数到行或列:df[['WD', 'File']].apply(lambda row: os.path.join(*row), axis=1)