尝试使用此方法从路径中获取最后一部分。将字符串从最右边的一方拆分为“/”作为分隔符,并使用负索引获取最后一个元素(基本上是文件名):
file1['FileName'] = ''
file1['FileName'] = file1.apply(lambda x: x['Path'].rsplit("/", 1)[-1] if x["FileType"]=='f' else '' , axis=1)
file1
FileType Path FileName
0 d /
1 f /documents/csv/.zip .zip
2 d /documents/images
3 d /hive/28374849
4 f /hadoop/jdjdjd/dnejfn.img dnejfn.img
由于矢量化,使用比apply函数快的numpy:
file1['FileName'] = np.where(file1["FileType"]=='f', file1['Path'].str.rsplit("/", n=1).str[-1], '')
FileType Path FileName
0 d /
1 f /documents/csv/.zip .zip
2 d /documents/images
3 d /hive/28374849
4 f /hadoop/jdjdjd/dnejfn.img dnejfn.img