Я работаю над задачей преобразования существующего КОДА SAS в Python.
Я столкнулся с некоторыми проблемами при преобразовании существующего МАКРОСА SAS в его Python эквивалент.
Я при работе с предположением, что эквивалент SAS MACRO будет PYTHON FUNCTION, а эквивалент SAS MACRO VARIABLE будет PYTHON STRING Переменная, которая может использоваться в Python Code, в то время как ее значение передается в Python Function (при необходимости).
Переменная SAS MACRO имеет 2 варианта использования:
USECASE 1: Его можно использовать в теле программы SAS, например, Условие фильтра:
например,
%let COUNTRY = 'UK';
DATA REVENUE_UK;
set REVENUE_ALL;
where CTRY = &COUNTRY.;
run;
USECASE 2: Его можно использовать в DATA STEP в программе SAS при создании набора данных:
%let COUNTRY = 'UK';
DATA PROFIT_&COUNTRY.;
set PROFIT;
run;
Если у нас есть для записи аналогичного logi c в Python:
USECASE 1: Использование переменной в Python CODE, например, Условие фильтра:
COUNTRY = 'UK'
REVENUE_UK = REVENUE_ALL.loc[REVENUE_ALL['CTRY'] == COUNTRY,:]
USECASE 2: использовать переменную при создании Dataframe:
COUNTRY = 'UK'
'PROFIT_'+CTRY = PROFIT.copy()
Теперь второй вариант использования не работает g.
Насколько я понимаю, мы не можем использовать переменную STRING в имени Dataframe.
Другие варианты включают в себя первоначальное создание словаря и предварительное определение все переменные как KEY и связанные фреймы данных как значение, а затем использовать этот словарь для назначения имени фрейма данных.
Но это неудобно для пользователя и требует частого обновления в словаре на начальном этапе.
Есть ли лучший способ создать Python фреймы данных и назвать их в соответствии со строкой, переданной в Function?