#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)
Комментариев нет:
Отправить комментарий