Получите список всех имен фреймов данных, переданных в качестве аргументов функции

#python #dataframe #arguments

Вопрос:

Я создал функцию, которая объединяет все фреймы данных с помощью левого соединения, и хочу, чтобы она могла принимать гибкое количество аргументов. Проблема в том, что мне нужен список всех имен фреймов данных для использования в функции reduce.Поэтому в приведенном ниже примере мне нужен all_dfs, который представляет собой список всех аргументов, переданных функции. Любая помощь была бы очень признательна.

 from functools import reduce
def myfunc(*args):
     result = reduce(
     lambda left, right: pd.merge(left, right, on=["p_key"], how="left"),
     all_dfs
     )
     return result
 

Ответ №1:

Имя, которое вы ищете, таково args .

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

1. args возвращали бы сами фреймы данных, а не имена фреймов данных

2. @user14128401 Я не думаю, что вы понимаете, как работают имена. Фреймы данных не имеют имен. У вас могут быть имена, указывающие на фреймы данных, или несколько имен, указывающих на один и тот же фрейм данных, но не наоборот.

3. @user14128401 работает ли ваш код, когда вы используете args вместо all_dfs ?

4. ах да, спасибо вам за это, это действительно работает!