首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过滚动数据来创建关键字列表(python)

通过滚动数据来创建关键字列表(python)
EN

Stack Overflow用户
提问于 2022-03-14 13:41:07
回答 1查看 46关注 0票数 -1

我有一个像这样的数据文件:

代码语言:javascript
复制
dataFrame = pd.DataFrame({'Name': (("' Verbundmörtel ', ' Compound Mortar ', ' Malta per stucchi e per incollaggio '"),
                                   ("' StoLevell In Absolute ', ' StoLevell In Absolute '"),
                                    ("' Anhydrit-FlieÃ\x9festrich ', ' Anhydrite Flowing Screed ', ' Massetto a base di anidrite '"),
                                    ("' Ansetzmörtel SLP ', ' Attachment mortar SLP ', ' Malta minerale adesiva SLP + iQ-Fix '"),
                                    ("' AQUAPANEL Cement Mörtel ', ' AQUAPANEL Cement Mortar '"),
                                    ("' Armatop por ', ' Armatop por '"),
                                    ("' Armatop por ', ' Armatop por '")),
                         
                            "File_name":(( "esiveCoveringPlaster_2" ),
                                        ("AdhesiveMortarLevellInForAEVERO_720"),
                                        ("AnhydriteFlowingScreed_20"),
                                        ("AnsetzmoertelSLPRemmers_21"),
                                        ("AquaboardMoertel_655"),
                                        ("ArmatopPor479korr_797"),
                                        ("ArmatopPor_479"))})

我要搜索的关键词是:

代码语言:javascript
复制
words = ['Mortar','hist','lime',
        'loam','adhesive','clay',
        'cement','insulation','sealing',
        'light','base', 'glue', 
        'gyps', 'mineral', 'fine',
        'Levelling', 'mould','Silicate'
        'Porous','Concrete','screed',
        'Rendering', 'Silicate','Renovation'
        'Perlite','Waterproof','Porous',
        'Old', 'Inside', 'por']

我想获得一个关键字列表。我正在尝试两种方法,但没有达到预期的结果。

方法1

代码语言:javascript
复制
test = ((dataFrame['Name'] + dataFrame['File_name'])).str.findall('|'.join(words),flags=re.IGNORECASE).map(','.join)

结果1

代码语言:javascript
复制
0   Mortar
1   Adhesive,Mortar
2   Screed,base,Screed
3   mortar,mineral
4   Cement,Cement,Mortar
5   por,por,Por
6   por,por,Por

方法2

代码语言:javascript
复制
test = pd.concat([(dataFrame['Name'] + dataFrame['File_name'])
               .str
               .contains(word, case=False)
               .map({True: word, False: ''})
               for word in words], axis=1).agg(list, axis=1).str.join(',').str.strip(',')

结果2

代码语言:javascript
复制
0   Mortar
1   Mortar,,,,adhesive
2   base,,,,,,,,,screed
3   Mortar,,,,,,,,,,,,,mineral
4   Mortar,,,,,,cement
5   por
6   por

我的目标是在这两栏中找到单词。然后将新列添加到dataframe中。我期望在结果中列出一串文字:

代码语言:javascript
复制
words = [['Mortar'],
        ['Mortar', 'adhesive'],
        ['Base', 'screed'],
        ['Mortar', 'mineral'],
        ['Mortar', 'cement'],
        ['por'],
        ['por']]

我正在创建散点图,函数"hue“将不得不参考第二列。我希望我已经说得够清楚了。

EN

回答 1

Stack Overflow用户

发布于 2022-03-14 13:51:12

我假设您只想在数据挖掘中找到列表words中单词的出现。你的确切问题有点不清楚。

代码语言:javascript
复制
words = ['Mortar','hist','lime',
        'loam','adhesive','clay',
        'cement','insulation','sealing',
        'light','base', 'glue', 
        'gyps', 'mineral', 'fine',
        'Levelling', 'mould','Silicate'
        'Porous','Concrete','screed',
        'Rendering', 'Silicate','Renovation'
        'Perlite','Waterproof','Porous',
        'Old', 'Inside', 'por']
pattern = "|".join(words)

regexW = re.compile(pattern)
regexW.findall("".join(str(df.values)))

['Mortar', 'Mortar', 'base', 'mineral', 'Mortar', 'por', 'por', 'por', 'por']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71468741

复制
相关文章

相似问题

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