Панды - Извлечь конкретные значения в скобках - PullRequest
0 голосов
/ 27 марта 2019

У меня есть серия панд, которая содержит различные часовые пояса и уникальные значения:

{0: '(GMT-05:00) Eastern Time (US & Canada)',
 1: '(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London',
 2: '(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',
 3: '(GMT) UTC - Coordinated Universal Time',
 4: '(GMT-06:00) Guadalajara, Mexico City, Monterrey',
 5: '(GMT 00:00) Ponta Delgada (Azores)',
 6: '(GMT-05:00) Eastern Time (Cancún, Quintana Roo, Mexico)',
 7: '(GMT-05:00) Indiana (East)',
 8: '(GMT-07:00) Arizona',
 9: '(GMT-06:00) Central Time (US & Canada)',
 10: '(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague',
 11: '(GMT) Casablanca, Monrovia',
 12: '(GMT-02:00) Mid-Atlantic',
 13: '(GMT+08:00) Perth'}

Я хочу извлечь часть GMT из этих строк.Все ответы, которые я нашел, говорят об извлечении строк из скобок, но не о конкретных значениях между скобками.

Ожидаемый результат:

{0: 'GMT-05:00',
 1: 'GMT',
 2: 'GMT+01:00',
 3: 'GMT',
 4: 'GMT-06:00',
 5: 'GMT 00:00',
 6: 'GMT-05:00',
 7: 'GMT-05:00',
 8: 'GMT-07:00',
 9: 'GMT-06:00',
 10: 'GMT+01:00',
 11: 'GMT',
 12: 'GMT-02:00',
 13: 'GMT+08:00'}

Я был бы очень признателен за вашупомощь, так как я не совсем хорошо с regex.

EDITED

Я попытался s.str.extract('.*\((.*)\).*', expand=True), который дает мне последние последние значения в скобках, так что еслистрока содержит (GMT-05:00) Eastern Time (US & Canada), будет (US & Canada).Я также пытался найти только s.str.extract('[GMT]', expand=True), но он выдает ошибку.

1 Ответ

0 голосов
/ 27 марта 2019

Чтобы извлечь все между двумя скобками, используйте \((.*?)\)

import re
import pandas as pd

data = {} # data dictionary
pattern = "\((.*?)\)"

df = pd.Series(data)
new_data = {}

key = 0
for item in df.items():
    new_data[key] = re.match(pattern, item[1])[1]
    key += 1

print(new_data)

#new_df = pd.Series(new_data)
#print(new_df)

объяснение: https://regex101.com/r/5XjNqh/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...