Страницы

Поиск по вопросам

суббота, 1 февраля 2020 г.

Преобразовать строки в числа в столбце DataFrame'а, избавившись от нецифровых символов

#python #строки #pandas #dataframe


Имеется датафрейм df_compliance:

name                                pass_info

Иванов Петр Александрович       4 520 802 159
Петров Михаил Иванович          4501256807
Сидоров Дим Димыч               4308 506310
Куприн Салтык Алекс             4513 № 056779
Воркутов Михаил Петрович        4501152999


Требуется привести колонку pass_info в одинаковый вид, чтобы получилось следующее:

 name                                pass_info

Иванов Петр Александрович       4520802159
Петров Михаил Иванович          4501256807
Сидоров Дим Димыч               4308506310
Куприн Салтык Алекс             4513056779
Воркутов Михаил Петрович        4501152999


Помогите разобраться как это сделать...

пытаюсь это сделать через df_compliance['pass_info'].apply(' ',join), но получается
ерунда :(
    


Ответы

Ответ 1



Воспользуйтесь Series.str.replace() и pd.to_numeric(): In [14]: df['pass_info'] = pd.to_numeric(df['pass_info'].str.replace('\D', ''), errors='coerce') In [15]: df Out[15]: name pass_info 0 Иванов Петр Александрович 4520802159 1 Петров Михаил Иванович 4501256807 2 Сидоров Дим Димыч 4308506310 3 Куприн Салтык Алекс 4513056779 4 Воркутов Михаил Петрович 4501152999 In [16]: df.dtypes Out[16]: name object pass_info int64 # <---- NOTE! dtype: object

Ответ 2



Вариант с регулярками: import re trim = re.compile("\D").sub('', s) df_compliance.pass_info.apply(trim)

Ответ 3



trim = lambda ss: ''.join(s for s in ss if s.isdigit()) df_compliance.pass_info.apply(trim)

Комментариев нет:

Отправить комментарий