I sh, чтобы объединить множество различных фреймов данных с именами, которые соответствуют шаблону регулярного выражения. (НЕ имена столбцов, я имею в виду имя самого кадра данных).
С благодарностью за принятый ответ на этой странице , Я могу получить желаемый результат с помощью:
reduce(lambda x, y: pd.merge(x, y, on = 'variable'), [df1, df2, df3])
Но набрать их все довольно утомительно. Все мои нужные фреймы данных помечены префиксом «m_», поэтому я надеялся, что будет простой способ использования регулярных выражений для сопоставления всех моих фреймов данных с использованием «^ m _» .
В надежде предоставить больше контекста, Я уже написал сообщение об этой проблеме в RStudio . На самом деле, я уже знал, как это сделать в R, но этот вопрос касался того, как вставить весь код в мою собственную функцию (что я также хотел бы знать, как это сделать в этой ситуации). Так что, если это поможет каким-либо образом, это точный эквивалент R того, что я пытаюсь сделать:
Reduce(function(...) merge(..., all = TRUE), mget(apropos("^m_")))
И, если возможно, сделайте из этого свою собственную функцию, как это (но все еще делает это с python вместо этого):
multi.merge <- function(pattern){
Reduce(function(...) merge(..., all = TRUE), mget(apropos(pattern), envir=.GlobalEnv))
}
output <- multi.merge("^m_")
Но если вы не знаете, что все это значит в R, надеюсь, мой желаемый результат все еще ясен.