如何替换数据帧每行上字符串的特定部分?

2024-09-27 02:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有文件名列的df。文件名本身只包含我需要的一段信息,即ID

df:

filename
/path/to/file/in/folder 76317 1a2334bc-5d6e-7f89-123e-0f12fgf123.txt

我只需要文件夹后面和散列之前的部分。所以在本例中是76317。文件夹中的所有文件都有文件夹路径、空间、我需要的ID,以及文件名其余部分的空间

如何从“文件名”列中删除除此特定列的所有行上所需的ID之外的所有内容


Tags: 文件topathintxt文件夹信息id
3条回答

str.extract与正则表达式一起使用,以查找由2个空格包围的任何内容:

>>> 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()

id = filename.split()[1]

将文件名的每个部分按您所说的出现在每个文件中的空格分开,然后得到中间项,即split()返回的节列表中的索引1

试试这个:

for fileName in column:
    ID = fileName.split(' ')[1]

但是,在字符串放入数据帧之前,应该尝试这种方法,这样就不会对它们进行两次迭代

相关问题 更多 >

    热门问题