如何在 pandas 的列中存储多个路径的基本名称

How to store the basenames of multiple paths in a column in pandas

我有一个 pandas 数据框:


Term.            DocFreq.  TermFreq.  Ngram.  Filenames

witness says     1        1          2       '/Users/KieraKatsalapov/Desktop//LuceneIndexing/Docs/cnnValBartCnnDocs/doc657.txt'
witness says of  2        2          3       '/Users/KieraKatsalapov/Desktop/LuceneIndexing/Docs/cnnValBartCnnDocs/doc192.txt,/Users/KieraKatsalapov/Desktop/LuceneIndexing/Docs/cnnValBartCnnDocs/doc153.txt'
.
.
.

我需要将文件名转换为基本名称。我知道我可以使用

来做到这一点
df['Filenames'] = df['Filenames'].apply(os.path.basenames)

但这只会转换最后一个文件名。例如,它会将第 2 个条目中的文件名直接转换为“doc153.txt”。

而我需要它是 - "doc192.txt, doc153.txt"

我假设我需要使用 lambda 函数,它将接收整个文件名值和 return 包含多个文件名的输出。但是我不知道如何进行。

请帮忙。

您可以按 , 拆分值,对于每个值调用 os.path.basename,最后加入 ,

df['Filenames'] = df['Filenames'].apply(lambda x:','.join(os.path.basename(y) for y in x.split(',')))