【问题标题】:Extract HTML information from df variable从 df 变量中提取 HTML 信息
【发布时间】:2021-08-12 22:07:21
【问题描述】:

尊敬的 stackoverflow 社区,

这是我第一次在这里提问。希望你能让我放松一下。 这是一个问题的描述:

  1. 我使用 ogr2org 将 KML 文件转换为 CSV
    ogr2ogr -f CSV output.csv 'some KML file'.kml
  2. 然后我在 pandas 中读取 csv 文件
    data = pd.read_csv('output.csv')
  1. 删除一些奇怪的列后,我最终得到以下结果:
In[1]: data.head(8)
Out[1]: 
                                          description   ID
0   <div class="googft-info-window">\n<b>ID:</b> 1...   1
1   <div class="googft-info-window">\n<b>ID:</b> 1...   10
2   <div class="googft-info-window">\n<b>ID:</b> 1...   100
3   <div class="googft-info-window">\n<b>ID:</b> 1...   1000
4   <div class="googft-info-window">\n<b>ID:</b> 1...   10000
5   <div class="googft-info-window">\n<b>ID:</b> 1...   10001
6   <div class="googft-info-window">\n<b>ID:</b> 1...   10002
7   <div class="googft-info-window">\n<b>ID:</b> 1...   10003
  1. description变量下的代表字符串如下:
    <div class=""googft-info-window"">
    <b>ID:</b> 1<br>
    <b>class:</b> 1<br>
    <b>fold:</b> 5
    </div>

我的问题是如何从“描述”列中提取干净的信息并将其添加到同一行,使用所有 &lt;b&gt;...&lt;\b&gt; 作为列名。

谢谢。 附言请让我知道我将来如何改进我的问题。

【问题讨论】:

    标签: html pandas kml


    【解决方案1】:

    您可以将str.extractall 与...一起使用

    df[['ID1', 'class', 'fold']] = df['description'].str.extractall(r'</b>\s?(\d+)<').unstack()
    

    str.findall 类似这样的东西......

    df[['ID1', 'class', 'fold']] = df['description'].str.findall(r'</b>\s?(\w+)<', expand=True)
    

    这些基于...的字符串

    <div class=""googft-info-window""><b>ID:</b> 1<br><b>class:</b> 1<br><b>fold:</b> 5</div>
    

    使用正则表达式匹配您需要从字符串中提取的三个值,并将其传递到= 符号左侧的三个新列。

    正则表达式:https://regex101.com/r/wVl2cI/1

    这是假设您只有三个值要查找并且 HTML 都是相同的。

    输出(示例):

        description             ID1    class    fold
    0   <div class=""googft-..  1      1        1
    1   <div class=""googft-..  1      1        1
    2   <div class=""googft-..  5      5        5
    

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 2012-07-04
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 2012-07-02
      • 1970-01-01
      相关资源
      最近更新 更多