从Python中的DataFrame列中的字符串中删除子目录



我正在尝试使用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

任何见解都将不胜感激。谢谢。

尝试使用限制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

可以使用 os.path.split获取路径的最后一部分

https://docs.python.org/3.3/library/os.path.html?highlight=path#os.path.spath.sphit

import os
f = lambda x: os.path.split(x)[1]
data[0] = data[0].map(f)

最新更新