首页 > 解决方案 > 如何在每一行数据帧上替换字符串的特定部分?

问题描述

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

df:

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

我只需要文件夹之后和哈希之前的部分。所以在这种情况下是 76317。文件夹中的所有文件都有文件夹路径、空间、我需要的 ID,以及文件名的其余部分。

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

标签: pythonstringpython-3.xpandas

解决方案


与正则表达式一起使用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

推荐阅读