Python/데이터 다루기

반복문을 활용한 일정 패턴의 변수 생성 - globals()

찐남 2022. 7. 16. 12:43

데이터를 다루다 보면, 

특히, 금융 데이터를 다루다 보면, 

시점에 따라 유사한 데이터 분석을

해야 할 때가 있다.

 

월별 대출 실적, 월별 카드 이용 실적, 

월별 대출 잔액, 월별 연체율 등등.....

 

이런 데이터 분석을 하기 위한

데이터를 정의할 때,

******_yyyymm 형식을 많이 사용한다.

 

*****_202206 : 2022년 6월 말 데이터

*****_202207 : 2022년 7월 말 데이터....

 

 

금융기관에서는 아직까지 SAS를 활용한

데이터 분석이 주를 이루고 있다.

 

SAS에서는 매크로를 사용하여 이를

간단히 처리할 수 있다. 

 

ex) SAS macro code

%macro loan(yyyymm);
    data library.data_set_&yyyymm. ; 
        set 데이터셋 ; 
            /* sas code */
    run;
%mend loan;

%loan(202206);
%loan(202207);
.....

 

파이썬에서도 이와 유사한 기능을 수행하는

함수? 매서드? 패키지? 모듈? 이 있을 거라고

생각하고 검색을 하기 시작했다.

 

음.... 검색어를 뭐라고 해야 하나?

"반복문을 활용한 파이썬 변수 생성",

"동일한 패턴을 가지는 파이썬 객체 생성" , 

"for 문을 활용한 파이썬 변수 생성",.....

 

그 결과, 역시~!!!!

이와 유사한 수행을 할 수 있는

함수를 찾아냈다. 

 

바로~~~~~~~~~~~~~~~!!!!

globals()

함수가 그것이다. ㅎㅎ

 

for문과 globals() 함수를 사용한 동일 패턴의 변수 생성

그럼 for문과 globals 함수를 사용해서 

동일한 패턴을 가지는 데이터를 

생성해 보자.

 

globals() 구문

여러 방법이 있겠지만, 

내가 주로 사용하는 방법은

아래와 같다.

# gloabals() 구문
globals()[f"var{패턴변수}"] = .....

 

바로 패턴 변수란에 동일한 패턴을 가지도록

반복문 (주로 for문)을 활용해서

패턴변수를 생성해 주면 된다.

 

globals() 구문 활용 예시

"var1"라는 변수에는 1의 값을 입력하고, 

"var2"라는 변수에는 2의 값을 입력하고,

"var3"라는 변수에는 3의 값을 입력하고,

...

"var100" 라는 변수에는 100의 값을 입력해 보자.

 

물론, 일일이 입력할 수 있다.

var1 = 1

var2 = 2

...

var100 = 100

 

100개의 변수 생성은 조금만 참고 입력하면, 

생성할 수 있는 개수이긴 하다.

 

하지만, 1000개 라면? 100000개 라면?

10000000000 라면? ....

 

일일이 수작업으로 입력하는 것은

불가능하다.

 

globals() 함수를 사용해서 

입력해 보자.

 

for i in range(1, 100 + 1):
    globals()[f"var{i}"] = i
    print(f"{i}번째 변수의 이름은 var{i} 이고, 값은 ", globals()[f"var{i}"], "입니다.")
    print()

 

 

반복된 데이터 작업 시, 

매우 유용하게 사용할 수 있는

함수이다.

 

꼭! 기억하자!

 

반응형