从熊猫数据框中提取特定信息

Posted

技术标签:

【中文标题】从熊猫数据框中提取特定信息【英文标题】:Extract specific information from pandas data frame 【发布时间】:2020-10-30 22:15:23 【问题描述】:

我的数据框看起来像 -

id                                           text
1               ><body lang="EN-IN" link="#0563C1" vlink="#954F72"><div class="WordSection1"><p 
                class="MsoNormal">I am interested.</p><p class="MsoNormal">I need :</p><p 
                class="MsoNormal">330 wp</p><p class="MsoNormal">50 modules</p><p 
                class="MsoNormal">&nbsp;</p><table class="MsoNormalTable" border="0" 
                cellspacing="0" cellpadding="0"  style="width:282.0pt; border- 
                collapse:collapse">

2               ><body lang="EN-IN" link="#0563C1" vlink="#954F72"><div class="WordSection1"><p 
               class="MsoNormal">I am not interested.</p><p 
               class="MsoNormal">&nbsp;</p><table class="MsoNormalTable" border="0" 
               cellspacing="0" cellpadding="0"  style="width:282.0pt; border- 
               collapse:collapse">

我的最终数据框看起来像 -

id                                           text                         final_text                                              
1               ><body lang="EN-IN" link="#0563C1"                     I am interested. I need
                 vlink="#954F72"><div class="WordSection1"><p          330 wp  50 modules    
                class="MsoNormal">I am interested.</p>
                <p class="MsoNormal">I need :</p><p 
                class="MsoNormal">330 wp</p><p 
                class="MsoNormal">50 modules</p><p 
                class="MsoNormal">&nbsp;</p><table 
                 class="MsoNormalTable" border="0" 
                cellspacing="0" cellpadding="0" 
                 style="width:282.0pt; border- 
                collapse:collapse">

2               ><body lang="EN-IN" link="#0563C1"                      I am not interested.
                vlink="#954F72"><div class="WordSection1"><p 
               class="MsoNormal">I am not interested.</p><p 
               class="MsoNormal">&nbsp;</p><table 
               class="MsoNormalTable" border="0" 
               cellspacing="0" cellpadding="0" 
                style="width:282.0pt; border- 
               collapse:collapse">

逻辑应该捕获存在于&lt;p class="MsoNormal"&gt; and &lt;/p&gt;.之间的所有信息,但不包括这个字符串"&amp;nbsp"。我想用 python 来做。

【问题讨论】:

【参考方案1】:

通常人们不会发布诸如“给我代码”之类的问题。您可以尝试发布与“如何从看起来像这样的句子中删除标签”或其他内容相同的问题。

无论如何,这是您的解决方案。

def get_sent(s):
    sent = ' '.join([i[1:] for i in s[1:].replace('>','|~').replace('<','|').split('|') if i[:1]=='~' and len(i)>1 and i[:2]!='~&'])
    return sent

df['final_text'] = df['text'].apply(get_sent)

希望这会有所帮助。

【讨论】:

以上是关于从熊猫数据框中提取特定信息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式从熊猫数据框中的一行中的字符串中提取所有特定值?

根据列值从熊猫数据框中提取行

如何从熊猫数据框中提取日期/年份/月份?

从熊猫数据框中提取嵌套字典

如何从字典列表中提取数据到熊猫数据框中?

从熊猫数据框中仅提取数字和字符串