Помогите найти ошибку в регулярном выражении

Имеется датафрейм "mos1" содержащий столбец "Площадь" где данные записаны в формате 64.1/23/20. (Name: Площадь, Length: 37693, dtype: int64). Необходимо заменить значения в столбце на цифру общей площади из имеющихся данных. Я пробую вариант:

mos1["Площадь"] = mos1["Площадь"](re.split(r"\d*{ ,1}"))

Выдает ошибку: split() missing 1 required positional argument: 'string'. Пробую

for i in (mos1["Площадь"]):
  sarg= i.split(r"\d*{ ,1}")
   mos1['Площадь'] = round(mos1['Площадь'](i==sarg))

Выдает ошибку: 'Series' object is not callable Помогите разобраться, что я делаю неправильно. Разобраться важнее, чем просто поправить. Задание учебное.


Ответы (1 шт):

Автор решения: MaxU

В Python синтаксическая конструкция object(...) - обозначает вызов функции с наименованием object. Об этом вам и сообщает интерпретатор:

'Series' object is not callable

Т.е. конструкция:

mos1["Площадь"](re.split(r"\d*{ ,1}"))

будет интерпретирована как вызов функции mos1["Площадь"] с параметром re.split(r"\d*{ ,1}"). Но mos1["Площадь"] - является объектом типа pandas.Series, а не функцией.


Но главная проблема в том, что вы неправильно используете инструментарий Pandas. В Pandas есть свои векторизированные методы для обработки строковых объектов при помощи регулярных выражений.

Т.е. у вас классическая "Ошибка микроскопа-молотка" или "Ошибка XY" - попробуйте описать вашу задачу более широко и более понятным языком.

NOTE: в будущем советую всегда приводить в вопросе воспроизводимый пример входных данных (в виде текста / CSV / Python кода или ссылки на файл) и то что вы ожидаете получить на выходе. Также советую ознакомиться: Как наиболее эффективно задать вопрос, связанный с обработкой и/или анализом данных (например: по Pandas / Numpy / SciPy / SciKit Learn / SQL)

→ Ссылка