Home > Blockchain >  python cut row in pandas df
python cut row in pandas df

Time:11-17

I have dataframe

0                    г. Санкт-Петербург, ул. Карпинского,
1                   г. Челябинск, проспект Комсомольский,
2                         г. Екатеринбург, ул. Щербакова,
3             г. Санкт-Петербург, ул. Латышских Стрелков,
4       г. Москва, вн.тер.г. муниципальный округ Измай...

I want all between 'г.' and ',' like

0                   Санкт-Петербург
1                   Челябинск
2                   Екатеринбург
3                   Санкт-Петербург
4                   Москва

I have code data['col'] = data['address'].str.extract('(г.*,)') but it doesn't give me desired result

CodePudding user response:

You can use str.extract with:

data['col'] = data['address'].str.extract(r'г. *([^,] ),', expand=False)

output:

                                             address              col
0               г. Санкт-Петербург, ул. Карпинского,  Санкт-Петербург
1              г. Челябинск, проспект Комсомольский,        Челябинск
2                    г. Екатеринбург, ул. Щербакова,     Екатеринбург
3        г. Санкт-Петербург, ул. Латышских Стрелков,  Санкт-Петербург
4  г. Москва, вн.тер.г. муниципальный округ Измай...           Москва

CodePudding user response:

Consider using split() for this case given the pattern:

data['col'] = [x.split()[1][:-1] for x in data['address']]

Returning:

                                col
0                   Санкт-Петербург
1                         Челябинск
2                      Екатеринбург
3                   Санкт-Петербург
4                           Москва
  • Related