Использование нескольких символов подстановки в Python Pandas - PullRequest
1 голос
/ 19 марта 2020

Спасибо за помощь. Высоко ценится. Я просмотрел ТАК и не мог получить ответ, на который надеялся.

у меня есть фрейм данных со столбцами, которые я хотел бы суммировать, но хотел бы исключить на основе подстановочного знака (поэтому я надеюсь включить на основе подстановочного знака, но также исключить на основе подстановочного знака)

My столбцы включают в себя: "доза_1", "доза_2", "доза_3" ... "новая_доза" + "инфузия_доза_1" + "инфузия_доза_2" + многие другие аналогично

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

df['new_column'] = df.filter(regex = 'dose').sum(axis = 1)

но что, если я хочу исключить столбцы, содержащие строку "infusion"?

Цените это!

1 Ответ

0 голосов
/ 19 марта 2020

regex вероятно, не тот инструмент для этой работы. Исключение на основе совпадения слишком сложно, см. Регулярное выражение для соответствия строке, которая не содержит слова . Просто используйте понимание списка, чтобы выбрать метки:

df = pd.DataFrame(columns=["dose_1", "dose_2", "dose_3", "new_dose",
                           "infusion_dose_1", "infusion_dose_2", 'foobar'])

cols = [x for x in df.columns if 'dose' in x and 'infusion' not in x]
#['dose_1', 'dose_2', 'dose_3', 'new_dose']

df['new_column'] = df[cols].sum(axis = 1)
...