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