Как удалить числа и скобки в конце значений столбца, например, в 'abc23', 'ab c (xyz)' в Pandas Dataframe? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть pandas фрейм данных со столбцом «Страна», в котором есть такие значения: «Швейцария17», «Боливия (Многонациональное государство)». Я хочу преобразовать их в просто «Швейцария», «Боливия». Как я могу это сделать?

PS: Я могу решить этот вопрос, используя циклы for, но это занимает много времени, поскольку у нас есть фрейм данных. Есть ли какая-нибудь функция pandas dataframe, которую мы можем использовать для решения этого вопроса?

Ответы [ 4 ]

2 голосов
/ 06 мая 2020

Если числа и круглые скобки - единственные, которые обозначают начало того, что вы хотите отбросить, вы можете разделить строку на основе '(' и просто сохранить первую часть и снова разделить строку на основе чисел и сохранить первая часть и выбросьте остальные.

a = 'Bolivia (Plurinational State of)'
a.split("(")[0] 

даст вам Боливию.

b = 'Switzerland17'
re.compile('[0-9]').split(b)[0] 

даст вам Швейцарию и выбросит все после появления любого числа.

1 голос
/ 06 мая 2020
def mysplit(a):
    b = a.split("(")[0]
    return re.compile('[0-9]').split(b)[0].rstrip()
df['Country'].apply(mysplit)

Это будет работать.

0 голосов
/ 06 мая 2020

Допустим, у нас есть пример кадра данных df как

    Country
0   Switzerland24
1   USA53
2   Norway3

Вы можете использовать функцию filter() для своих целей,

df['Country'] = df['Country'].apply(lambda s : ''.join(filter(lambda x: x.isalpha(), s)))
print(df)


    Country
0   Switzerland
1   USA
2   Norway

или

def remove_digits(s):
    for x in range(10):
        s = s.replace(str(x), '')
    return s

df['Country'] = df['Country'].apply(remove_digits)
print(df)

       Country
0  Switzerland
1          USA
2       Norway
0 голосов
/ 06 мая 2020

Итак, у вас есть данные вроде:

string = 'Switzerland17'

Мы можем заменить окончание numeri c с помощью функции re module sub.

import re
no_digits = re.sub(r'\d+$', '', string)

Получаем:

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