Мне нужно добавить столбец «Статус» в мой Pandas df, который проверяет несколько столбцов df, чтобы отобразить сообщение о возможных опциях для пользователя.Я думаю, что я мог бы сделать это, если бы столбцы были статичными, но в следующий раз, когда новый инструмент будет включен, он будет отображаться в данных как новый столбец, который необходимо будет проверить.Я пытаюсь избежать жесткого кодирования в конкретных именах инструментов.
Я нашел способ условно создать столбец для каждого инструмента, который работает хорошо, но он создает один для каждого инструмента.В приведенном выше случае мне нужен один столбец вместо нескольких.
Вот как мне удается создать новый столбец на основе всех инструментов, которые находятся в кадре данных:
tools = unded[unded.columns[unded.columns.str.contains("tool")]]
undedtools = tools.columns.values.tolist()
for tool in undedtools:
unded.loc[(unded[tool] == 'Y') & (unded['lines_down'] == 'N'), tool + '_format'] = 2
unded.loc[(unded[tool]) == 0, tool + '_format'] = 3
Этосоздает столбец для каждого инструмента с именем наподобие "tool123_format".Столбцы заполняются числом, которое я использую для форматирования отчета.Теперь, когда у меня есть такой столбец для каждого инструмента, мне нужно проверить все эти столбцы и сообщить о состоянии.
Я ожидаю, что он сообщит что-то вроде «tool123 и tool456 открыты», если он найдет 2 в столбце формата для каждого из этих инструментов.Тогда в следующей строке может не быть открытых инструментов, поэтому будет сказано: «Все пути закрыты. Перейдите в eng»
Как условно получить имена инструментов в этом столбце «Состояние» для каждой строки кадра данных?Раньше у меня была вся эта штука в SQL, но я устал от добавления десятков новых строк в мой оператор CASE WHEN каждый раз, когда мы добавляем новый инструмент.