代码之家  ›  专栏  ›  技术社区  ›  324

Pandas-从文本中分离章节编号

  •  -1
  • 324  · 技术社区  · 2 年前

    我在熊猫数据框架中有一列,格式如下:

    ColumnA
    ========
    4 Requirements
    Requirement blah blah
    Requirement blah blah blah
    4.1.1 Requirement Subsection
    4.1.1.1 Requirement subsection subsection
    blah blah blah
    ...
    

    我正试着把数字和文字分开。换句话说,我想要两列,如下所示:

    ColA      ColB
    =================================
    4         Requirements
              Requirement blah blah
              Requirement blah blah blah
    4.1.1     Requirement Subsection
    4.1.1.1   Requirement subsection subsection
              blah blah blah
    ...
    

    如果记录存在,则节号将始终位于记录的开头。我怎样才能完成这样的事情?

    1 回复  |  直到 2 年前
        1
  •  0
  •   mozway    2 年前

    您可以使用 str.extract :

    df['ColumnA'].str.extract('^(\d+[.\d]*)?\s*(.*)')
    
    # or with named capturing groups
    df['ColumnA'].str.extract('^(?P<ColA>\d+[.\d]*)?\s*(?P<ColB>.*)')
    

    输出:

          ColA                               ColB
    0        4                       Requirements
    1      NaN              Requirement blah blah
    2      NaN         Requirement blah blah blah
    3    4.1.1             Requirement Subsection
    4  4.1.1.1  Requirement subsection subsection
    5      NaN                     blah blah blah