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 Москва