我需要将文档路径拆分为foldername和python中的文档名。这是一个包含许多行的大型数据框。对于后面没有文档名的文件名,只需在结果中将“文档名”列留空即可。例如,我有一个如下所示的数据帧:
no filename
1 \\apple\config.csv
2 \\apple\fox.pdf
3 \\orange\cat.xls
4 \\banana\eggplant.pdf
5 \\lucy
...
我希望输出如下所示:
foldername documentname
\\apple config.csv
\\apple fox.pdf
\\orange cat.xls
\\banana eggplant.pdf
\\lucy
...
我已经尝试了以下代码,但它不起作用
y={'Foldername':[],'Docname':[]}
def splitnames(x):
if "." in x:
docname=os.path.basename(x)
rm="\\"+docname
newur=x.replace(rm,'')
else:
newur=x
docname=""
result=[newur,docname]
y["Foldername"].append(result[0])
y["Docname"].append(result[1])
return y;
dff=df$filename.apply(splitnames)
非常感谢你的帮助
不确定如何获取路径,但可以创建一些Pathlib对象,并使用一些类方法获取文件名和文件夹名
:
您可能需要使用apply函数两次,以生成单独的列:
默认的apply函数等待创建单个值,并且在这种情况下,值得指出要将其用于哪个列
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html
相关问题 更多 >
编程相关推荐