У меня есть фрейм данных с именами столбцов, такими как v1,...,v99, tm1,...tm99
и так далее. Хотя не для каждого числа существует столбец (mybe v42 отсутствует). Буквы могут варьироваться от до zzz
. Я написал метод фильтрации моих столбцов по буквенной комбинации (например, 'v'
или 'tm'
), за которой следует цифра. Это выглядит как
def create_required_dataset(df, var_filter):
persDf = df.filter(regex=('^' + var_filter + r'[0-9]+$'))
return persDf
Это работает create_required_dataset('v')
, и я получаю фрейм данных со всеми столбцами, начинающимися с v
, за которыми следует число.
и отлично работает. Но теперь мне нужно доставить не только одну комбинацию букв (
'tm', 'zzz' )
, но и столько, сколько вводит пользователь.
Таким образом, запрос должен выглядеть следующим образом:
create_required_dataset('v', 'tm', 'zz')
Я пытался работать с *args
, поэтому я переписал свой метод на
def create_required_dataset(df, *args):
persDf = df.filter(regex=('^' + args + r'[0-9]+$'))
return persD
Но это не работает, даже если я преобразую tuple
в list
. Очевидно, что regex
занимает только один string
. Я подумал о методе лямбда-аппликации, который применяет функцию регулярного выражения, но не смог заставить это работать. Я просто не знаю, как это сделать сейчас, и мне нужна помощь. I