Python Dataframe 获取子字符串

标签 python pandas regex dataframe

我有一些数据帧,其 id 列类似于

A12-B-56
E1234B115

它总是一些字母,然后是几个数字,然后是 -B- 或 B,我想在“-B-”和“B”之前保留子字符串。我想出的一种方法是使用 for 循环和 re.split('(\d+)', some_text)。有没有更快的方法来做到这一点?

最佳答案

使用前瞻断言来获取从头开始的所有字母数字,后跟 B。在替换 - 之前执行此操作是明智的做法。代码如下:

df=pd.DataFrame({'column':['A12-B-56','A123B567']})

df= df.assign(column=(df['column'].str.replace('\-','', regex=True).str.extract('(^\w+(?=B))')))

按照 @mozway 的建议,使其成为简短而简洁的一行

df['column'].str.extract('(^\w+)-?B')

关于Python Dataframe 获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74793365/

相关文章:

python - 无法过滤 pandas 数据框中的索引

javascript - 如何在已知的 XML 标签之间进行匹配?

regex - Powershell 使用 Regex 在字符串中查找字符串

python - 模块未找到错误: No module named 'importlib_metadata' while installing pint in python

python - 在具有多个进程的 uwsgi 中托管时,一些 django 的日志丢失

python - 如何像使用嵌套 for 循环一样迭代任意数量的列表?

python - 如何使用变量 driver.find_element_by_id 的值

python - 如何将简单的网络数据帧更改为相关表?

python - 如何获取 Pandas 中的每第 n 列?

c# - 如何在Winforms RichTextBox中实现基本的语法高亮?