Forloop + regex работает для поиска и замены чисел, но не в скобках в столбце данных - PullRequest
0 голосов
/ 03 мая 2019

У меня есть фрейм данных «энергия» в python со столбцом «Страна» со списком стран.Я пытаюсь исключить цифры, например, Швейцария17 для Швейцарии, а также скобки, например, Боливия (.. для Боливии.

код, который я работал для числовых случаев, таких как Швейцария17, но недля скобок:

for cty in energy['Country']:
    try:
        y = re.findall('[0-9]',cty)[0]
        energy['Country'] = energy['Country'].str.replace(cty,cty[:cty.find(str(y))])
    except:
        continue

, и это выше работает, однако ниже не работает:

for c in energy['Country']:
    try:
        z = re.search('[(]',c)[0]
        energy['Country'] = energy['Country'].str.replace(c,c[:c.find(str(z))])
    except:
        continue

Я также вижу этот отдельный отпечаток (c, c [: c.find (str (z))]) работает, но не работает в цикле for. Где я ошибаюсь при поиске и замене скобки?

1 Ответ

0 голосов
/ 03 мая 2019

Использование str.replace & str.strip

Пример:

import pandas as pd

df = pd.DataFrame({'Country': ["Switzerland17", "Bolivia (KK)", "China"]})
df["Country"] = df["Country"].str.strip("0123456789").str.replace(r"(\(.*?\))", "").str.strip()
print(df)

Выход:

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