【问题标题】:Split dataframe cells where first number is encountered拆分遇到第一个数字的数据框单元格
【发布时间】:2019-01-17 18:35:04
【问题描述】:

我的数据框中有一列,我想在遇到第一个数值的地方拆分它。这是我的数据示例:

                                                    col
1                           Beb il Gisire, contrata 102
12                    Bungemma, territorium 90, 115, 130
13                               Territorium Binhise 188
14                                Contrata Bir Bahar 205
15                                Contrata Bir HaJar 168
16                                 Bir Kibir, contrata 7
17      Lu Burgu; Suburbium Castri Maris 5, 15, 23, 6...

当它们发生变化时,我不能按空格或数字拆分。所需的输出是:

    1                           Beb il Gisire, contrata           102
    12                          Bungemma, territorium             90, 115, 130
    13                          Territorium Binhise               188
    14                          Contrata Bir Bahar                205
    15                          Contrata Bir HaJar                168
    16                          Bir Kibir, contrata               7
    17                          Lu Burgu; Suburbium Castri Maris  5, 15, 23, 6...

【问题讨论】:

  • 你想要的输出怎么样?

标签: python regex pandas dataframe


【解决方案1】:

使用'(.*?)(\d.*)' 正则表达式模式来捕获/拆分组。

In [237]: df.col.str.extract('(.*?)(\d.*)')
Out[237]:
                                   0                 1
1            Beb il Gisire, contrata               102
12             Bungemma, territorium      90, 115, 130
13               Territorium Binhise               188
14                Contrata Bir Bahar               205
15                Contrata Bir HaJar               168
16               Bir Kibir, contrata                 7
17  Lu Burgu; Suburbium Castri Maris   5, 15, 23, 6...

【讨论】:

    【解决方案2】:

    一个选项是:

    df['col1'] = df['col'].str.split('(\d)').str[0]
    df['col2'] = df['col'].replace(to_replace=r'\b'+df['col1']+r'\b', value='',regex=True)
    

    输出:

                                   col1              col2  
    0           Beb il Gisire, contrata               102  
    1             Bungemma, territorium      90, 115, 130  
    2               Territorium Binhise               188  
    3                Contrata Bir Bahar               205  
    4                Contrata Bir HaJar               168  
    5               Bir Kibir, contrata                 7  
    6  Lu Burgu; Suburbium Castri Maris   5, 15, 23, 6...
    

    .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-10
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多