2024-09-27 02:26:33 发布
网友
我有一个带有文件名列的df。文件名本身只包含我需要的一段信息,即ID
df: filename /path/to/file/in/folder 76317 1a2334bc-5d6e-7f89-123e-0f12fgf123.txt
我只需要文件夹后面和散列之前的部分。所以在本例中是76317。文件夹中的所有文件都有文件夹路径、空间、我需要的ID,以及文件名其余部分的空间
如何从“文件名”列中删除除此特定列的所有行上所需的ID之外的所有内容
将str.extract与正则表达式一起使用,以查找由2个空格包围的任何内容:
str.extract
>>> df filename 0 /path/to/file/in/folder 76317 1a2334bc-5d6e-7f... 1 /path/to/file/in/folder 76318 1a2334bc-5d6e-7f... df['filename'] = df.filename.str.extract('\s(.*)\s', expand=False) >>> df filename 0 76317 1 76318
我不确定您的具体实现,但是您是否尝试过使用str.split()
str.split()
id = filename.split()[1]
将文件名的每个部分按您所说的出现在每个文件中的空格分开,然后得到中间项,即split()返回的节列表中的索引1
split()
试试这个:
for fileName in column: ID = fileName.split(' ')[1]
但是,在字符串放入数据帧之前,应该尝试这种方法,这样就不会对它们进行两次迭代
将
str.extract
与正则表达式一起使用,以查找由2个空格包围的任何内容:我不确定您的具体实现,但是您是否尝试过使用
str.split()
将文件名的每个部分按您所说的出现在每个文件中的空格分开,然后得到中间项,即
split()
返回的节列表中的索引1试试这个:
但是,在字符串放入数据帧之前,应该尝试这种方法,这样就不会对它们进行两次迭代
相关问题 更多 >
编程相关推荐