pandas применяют regex для замены значений

Я прочитал некоторые данные о ценах в фрейме данных pandas, значения следующие:

$40,000* $40000 conditions attached 

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

 [0-9]+ 

к каждому полю присоединяется к результирующему списку обратно вместе, но есть ли не замкнутый путь?

благодаря

  • Python regex AttributeError: объект 'NoneType' не имеет атрибута 'group'
  • Python regex - r префикс
  • использование regex в jinja 2 для прослушиваемых книг
  • Есть ли lib для генерации данных в соответствии с регулярным выражением? (Python или другое)
  • Юникод, регулярные выражения и PyPy
  • Найти / заменить URL-адрес в документе с помощью регулярного выражения Python
  • Регулярное выражение Python: разбиение на соответствие шаблону, которое является пустой строкой
  • Поиск и замена -. Sub (замена, строка ) - не работает со специальными символами
  • 4 Solutions collect form web for “pandas применяют regex для замены значений”

    Вы можете удалить все ненулевые цифры, используя re.sub() :

     value = re.sub(r"[^0-9]+", "", value) 

    regex101 demo

    Вы можете использовать Series.str.replace :

     import pandas as pd df = pd.DataFrame(['$40,000*','$40000 conditions attached'], columns=['P']) print(df) # P # 0 $40,000* # 1 $40000 conditions attached df['P'] = df['P'].str.replace(r'\D+', '').astype('int') print(df) 

    доходность

      P 0 40000 1 40000 

    так как \D соответствует любой не десятичной цифре .

    Вы можете использовать метод замены pandas; также вы можете сохранить разделитель тысяч ',' и разделитель десятичных знаков '.'

     import pandas as pd df = pd.DataFrame(['$40,000.32*','$40000 conditions attached'], columns=['pricing']) df['pricing'].replace(to_replace="\$([0-9,\.]+).*", value=r"\1", regex=True, inplace=True) print(df) pricing 0 40,000.32 1 40000 

    Для этого вам не нужно регулярное выражение. Это должно работать:

    df['col'] = df['col'].astype(str).convert_objects(convert_numeric=True)

    Python - лучший язык программирования в мире.