如何在 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(',')))
我有一个 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(',')))