Контекстно-зависимая модификация — pandas

#python #pandas #function

#python #pandas #функция

Вопрос:

в фрейме данных pandas у меня есть столбец, содержащий условие, подобное следующим примерам:

  • «(XCondition)»
  • «(XCondition И YCondition)»
  • «(XCondition) И (YCondition)»
  • «((XCondition) И (YCondition)) ИЛИ (ZCondition)»

Теперь представьте, что я хочу удалить XCondition. Как вы можете видеть, для XCondition возможно несколько контекстов:

  • со скобками или без них
  • со следующим ключевым словом или нет
  • внутри подлога или нет

Простое удаление строки «XCondition» не даст мне рабочий файл.

Мой текущий подход заключается в создании довольно сложной функции, а затем использовании метода df.apply() для ее обработки.

Я знаю, что это довольно сложная проблема, которая требует довольно сложной функции, но мне интересно, существует ли что-нибудь действительно для ее решения.

Если у кого-то есть опыт решения подобных проблем и есть несколько советов по этому поводу. Я буду рад это услышать.

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

1. Можете ли вы добавить некоторый образец данных? Что находится XCondition, YCondition, ZCondition в образце данных?

2. Хороший момент. Это просто строка. Обычно это одно слово — без пробела. Он представляет собой мета-атрибуты. Вы можете заменить на город, если предпочитаете (город без пробела): — «(Париж)» — «(Париж И Чикаго)» — «(Париж) И (Чикаго)» — «((Париж) И (Чикаго)) ИЛИ (Лондон)»

3. С помощью логики, если вы хотите заменить условие, просто установите для него значение True все время.