python - 匹配 DataFrame 中两个单词之间的字符串

标签 python regex pandas

我有一个 DataFrame,其中一列包含我想从中提取一些信息的文本。

我有两个词:“类型”和“容量”,它们之间是一串数字和非数字字符+可能有空格 - 我想将其保存到新列中。

这是我的代码

df['new'] = df['text'].apply(lambda x: re.search(r'Type (\w+) Capacity', x).group(1))
print (df['new'])

它不会给我错误,但打印出以下内容:

Series([], Name: test, dtype: object)

我不明白出了什么问题。感谢您的帮助

最佳答案

你可以使用

df['new'] = df['text'].str.extract(r'Type (\w+) Capacity')

pandas.Series.str.extract方法只会返回捕获的值(与括号模式部分匹配的值)。

如果您想确保仅返回数据帧(或False以获取Series/Index/DataFrame),并且如果您在某些行上没有匹配项,.fillna('') 可能有用。

关于python - 匹配 DataFrame 中两个单词之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266536/

相关文章:

python - pip install 暴力破解(无提示)

css - 疯狂的正则表达式 : append previous CSS selector

python - 从 Pandas 数据框中提取数据作为数据框

Python:将列表更新为字典值

python - seq2seq 预测下一个时间步

python - python函数中的奇怪返回值

javascript - 用于验证和格式化债券编号的正则表达式

javascript - 使用 find Text() 多次出现时的额外匹配

python - 按对象计算分组中子组的行数

python - 使用 Pandas 进行多列分组以找到每组的最大值