프로그래밍 10

[Python] 리스트 타입 순서 변경과 응용

다른거 공부하다가 리스트 내 순서 변경하는 코드를 찾아보게 되어 기록하는 블로그 파이썬을 자주 사용하지는 않지만 나중에 관련해서 찾게 될까봐 써놓는다ㅋㅋ 코드는 매우매우 쉬움 CASE1)간단한 리스트 정렬하기lst = [0,1,5,3,2,4,9] # 리스트1lst2 = [50,11,25,43,22,42,91] # 리스트2lst = sorted(lst) # sorted 활용lst2.sort() # sort 활용 결과는 다음과 같이 잘 정렬되어 있는걸 볼수있다. CASE2) Key 활용하기list 타입은 튜플을 담을 수 있다. 이때 특정 순서 기준으로 list를 정렬하고 싶다면?정렬하고 싶은 인덱스의 번호만 알면 lambda를 활용해서 정렬할 수 있다. 다음 ..

프로그래밍 2024.09.04

[Python] 판다스에서 map함수와 apply 함수, 공통점과 차이점

파이썬을 이용해서 전처리를 하다보면 자주 쓰는 함수들이 있는데,그 중 판다스에서 활용할 수 있는 map함수와 apply함수가 있다. map함수의 정확한 용도와 apply함수와의 차이를 몰라서 주로 apply함수를 더 많이 사용해왔는데이번에 두 함수의 공통점과 차이점을 정리해 보았다.   먼저, 값을 넣으면 3번 곱한 값을 계산하는 함수를 만들자.import pandas as pd # 판다스 불러오기df_value = pd.DataFrame({'value':[1,2,3]}) # 데이터프레임 생성# x값을 3번 곱하는 함수def def_calculate(x): y = x*x*x return y 데이터프레임 df_value의 value 변수의 값을 3번 곱해보자.  1. apply 함수value값을 3번 ..

프로그래밍 2024.07.13

[Python] eval(), exec() 함수와 딕셔너리

다른 코드 찾아보다가 알게된 게 있어서 기록하는 블로그ㅎㅎ 작년 프로젝트를 수행하면서 자주 사용했던 함수가 있는데문자열을 수행할 수 있는 eval(), exec() 함수이다. eval(), exec() 함수란? 문자열을 코드 수행시킬 수 있는 간단한 함수이다. 예를 들어,a = "1+1"eval(a)a= "1+1" 로 문자열로 값을 넣고eval(a)를 수행하는 경우 결과는 다음과 같다.2 eval이 "1+1"을 문자열이 아닌 1+1로 인식되어 결과값이 2가 나오게 된다. 다음은 exec함수인데, 위의 코드에 이어서 다음과 같은 코드를 수행해보자.b = "a=1"exec(b)print(a) 이때 a의 결과는 1이 나오게 된다.1 아무튼, 이렇게 유용하게 사용할 수 있는 함수인데작년에는 파이썬에서 하이브 연..

프로그래밍 2024.07.11

[HIVE] 문자열 쪼개기 및 하나의 칼럼으로 나타내기

하이브에서 문자열을 특정 구분자로 쪼개고 쪼갠 문자들을 하나의 열로 나타낼 수 있는 함수는 다음과 같다. explode(split(문자열, ‘구분자’) ) 예시) SELECT explode( split(‘1, 8, 7’, ‘,’ ) ) 하이브는 테이블 없이 select 문만 사용하여 코드 생성이 가능하므로 위의 예시를 바로 돌려볼 수 있음. [결과] col 1 8 7 순서대로 정렬하고 싶으면 칼럼명을 붙여서 order by를 사용하면 된다. 해당 함수를 찾게 된 계기는,, 쿼리 내 랜덤 샘플링이 너무 오래 걸려서 그거를 좀 빠르게 해보려고 + 랜덤 sample 관련 임시 테이블 생성 안하기 라는 조건을 만족하고 싶어서였는데 결론은 저 방법으로 어떻게 샘플링을 좀 빠르게 하는게 가능은 했지만, 샘플링하는 ..

프로그래밍 2023.08.17

[SAS] 대상자 별 반복적인 값 생성하기

​SAS에서는 SAS SQL에서 Left join, Outer Join 등을 이용해 두개의 Table을 붙일 수 있다. 하지만 두 테이블을 붙이기 위해서는 공통으로 가지고 있는 Key 값이 있어야 하는데 내가 원하는 건 PROC SQL을 이용해서 각 대상자 별 반복적인 값을 생성하는 것이었다. 예를 들면 이런 것이다. 대상자에 대한 정보가 다음과 같이 있으면 대상자 A, B, C, D에 대하여 VISIT 값 1, 2, 3을 각각 한 행씩 생성하고 싶다. 우선 필요한 Table을 각각 생성해 보자. data INFO; length NAME $25.; input NAME AGE ; CARDS; A 10 B 12 C 31 D 20 ; run; data VISIT; input VISIT ; CARDS; 1 2 ..

프로그래밍 2023.07.17

[SAS] PROC TRANSPOSE 로 데이터 형태 변환

SAS 프로시저인 TRANSPOSE를 이용해 여러 데이터 변환을 할 수 있다. 다음과 같이 ID, AGE, SEX가 주어지고 대상자 별 월 매출 M1, M2, M3가 각각의 변수로 있다. ​ 분석을 위해 M1, M2, M3를 하나의 열로 합치고 싶다면 PROC SQL의 UNION ALL을 이용할 수도 있지만 PROC TRANSPOSE를 이용하면 훨씬 쉽게 데이터 변환을 할 수 있다. ​ 먼저 필요한 데이터 생성을 해보자. ​[데이터 생성 코드] Data data ; input id $ age sex $ m1 m2 m3; cards; id1 20 M 200 300 100 id2 30 W 100 350 100 id3 12 M 100 90 100 id4 60 W 700 300 300 id5 20 W 500 2..

프로그래밍 2023.07.16

[SAS]변수 공백 없애는 방법

이전에 SAS 코드 사용했을 때 공백을 없애기 위해 자주 사용했던 함수를 정리해 보았다. 1. Compress 함수 변수에 있는 모든 공백이 사라짐. Compress(변수명, ‘ ’) 예) ‘ AB C ’ -> ‘ABC’ 2. Trim 함수 변수의 앞 뒤에 있는 공백이 사라짐 Trim(변수명) 예) ‘ AB C ’ -> ‘AB C’ 하지만 이상하게도 위에 함수로도 공백이 안 사라졌을 때가 있는데 그런 경우는 아래 코드를 이용하면 공백이 사라졌다. strip(tranwrd(변수명,"09"x,""))

프로그래밍 2023.07.16