我正在尝试使用l和rsplit从此数据框中删除子目录,并仅在数据框的列中保留文件名。
import pandas as pd
data = ['D:/xyz/abc/123/file_1.txt', 'D:/xyz/abc/file2.txt', 'D:/xyz/file_2.txt']
data = pd.DataFrame(data)
data[0].str.rsplit('/').str[3]
返回:
Out[1]:
0 123
1 file2.txt
2 NaN
Name: 0, dtype: object
如您所见,无论str[]
函数如何,它都不会仅保留txt文件名。
所需的输出:
Out[1]:
0 file_1.txt
1 file2.txt
2 file_2.txt
Name: 0, dtype: object
任何见识将不胜感激。谢谢。
答案 0 :(得分:2)
尝试使用限制为1的rsplit
并选择最后一个项目
data[0].str.rsplit('/', n=1).str[-1]
Out[194]:
0 file_1.txt
1 file2.txt
2 file_2.txt
Name: 0, dtype: object
答案 1 :(得分:0)
可以使用os.path.split
来获取路径的最后一部分
https://docs.python.org/3.3/library/os.path.html?highlight=path#os.path.split
import os
f = lambda x: os.path.split(x)[1]
data[0] = data[0].map(f)