首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在串联上应用Re模块有问题

在串联上应用Re模块有问题
EN

Stack Overflow用户
提问于 2018-06-13 16:52:45
回答 1查看 44关注 0票数 2

我在我的系列中应用以下内容有困难。

代码语言:javascript
运行
复制
 Data['Notes']
 0       2018-06-07 09:38:14Z -- legal -- As per ...
 1       2018-06-05 12:48:26Z -- name -- Holdin...
 2       2018-06-05 17:15:48Z -- filing -- Answe...
 3       2018-06-11 08:34:53Z -- name -- lvm i...
 4       2018-05-11 08:31:26Z -- filed -- summo...
 5       2018-06-01 16:07:11Z -- Name Rogers -- sent ...

import re

keywords = {'file', 'filing', 'legal'}
max_words_after  = 5

key_re = re.compile(fr"""
(?:{'|'.join([w for w in keywords])})   #keyword options group
\s((?:[\s]?[A-Za-z\']+[\s]?)    #capture word. include with line-breaks
{{1,{max_words_after}}})                #1 to max_words_after
""", re.VERBOSE|re.IGNORECASE
)

for f in data['Notes']:
data['Result'] = key_re.findall(f)

作为回应,我得到的只是

"ValueError:值的长度与索引长度不匹配。“

请告诉我如何获得每个索引位置的结果,并将其附加到数据框架内的新系列中。

EN

回答 1

Stack Overflow用户

发布于 2018-06-14 15:36:20

理解你的错误

key_re.findall(f)返回一个不同大小的列表(我认为将找到0或1关键字,但取决于您的re表达式,它可能更多)。

您正在向所有行广播这是您的数据,当然,它没有相同数量的项目。因此,“值的长度不匹配索引的长度”。

我不认为这是你想要做的。我认为您希望在另一列的基础上创建新列。有关详细信息,请参阅this question,但下面是适用于您的情况的内容。

修正你的代码

代码语言:javascript
运行
复制
import re
import pandas as pd

下面是关于数据变量的内容。我可以复制、粘贴和运行的东西:

代码语言:javascript
运行
复制
Data = pd.DataFrame([["2018-06-07 09:38:14Z -- legal -- As per ..."],["2018-06-05 12:48:26Z -- name -- Holdin..."]], columns=["Notes"])

创建一个执行所需转换的函数。

代码语言:javascript
运行
复制
def find_key_words(row):
    keywords = {'file', 'filing', 'legal'}
    max_words_after  = 5

我只包含re表达式的第一行,因为当我测试它时,当我有完整的表达式时,总是没有结果。您可以根据需要对此进行修改。

代码语言:javascript
运行
复制
    key_re = re.compile(fr"""
        (?:{'|'.join([w for w in keywords])})   #keyword options group
        """, re.VERBOSE|re.IGNORECASE
    )
    return key_re.findall(row['Notes'])

现在,将该函数应用于每一行。这样,您就可以播放与“‘Result”所期望的数据长度相匹配的内容。

代码语言:javascript
运行
复制
Data['Result'] = Data.apply(lambda row: find_key_words(row),axis=1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50842485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档