포스팅 목차
* 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
[ LTRIM Oracle Function ]
LTRIM함수는 문자열 char 좌측으로부터 set으로 지정된 모든 문자를 제거한다. 만약 set이 지정되지 않았다면, 디폴트로 한 개의 공백이 지정된다. 만약 char이 문자열이라면, 따옴표를 해야만 한다. 오라클 데이터 베이스는 char 첫 문자에서부터 스캔을 하여 set으로 지정된 모든 문자를 삭제한다. 지정한 set 이외의 문자 발견 시 결과를 반환한다.
- 함수 설명 : LTRIM 오라클 함수 링크
1. Oracle(오라클)
Ltrim 함수를 사용하여서 문자열 좌측에서 ‘xy’ 문자를 모두 제거한다.
Oracle Programming |
SELECT LTRIM('xyxXxySTATWITH WITHMOOC','xy') "LTRIM example"
FROM DUAL;
Results |
LTRIM example
------------------------
XxySTATWITH WITHMOOC
2. Python Pandas(파이썬)
lstrip() 함수
Python Programming |
'xyxyxxXxySTATWITH WITHMOOC'.lstrip('xy')
Results |
'XxySTATWITH WITHMOOC'
re.sub() 함수 : 정규식 사용
Python Programming |
re.sub(r'^[xy]+', '', 'xyxyxxXxySTATWITH WITHMOOC')
Results |
'XxySTATWITH WITHMOOC'
lstrip() 함수
Python Programming |
emp['job'].apply(lambda x: x.lstrip('CL|SA'))
Results |
0 ERK
1 ESMAN
2 ESMAN
3 MANAGER
4 ESMAN
5 MANAGER
6 MANAGER
7 NALYST
8 PRESIDENT
9 ESMAN
10 ERK
11 ERK
12 NALYST
13 ERK
Name: job, dtype: object
re.sub() 함수 : 정규식
Python Programming |
emp['job'].apply(lambda x: re.sub(r'^[CL|SA]+', '', x) )
Results |
0 ERK
1 ESMAN
2 ESMAN
3 MANAGER
4 ESMAN
5 MANAGER
6 MANAGER
7 NALYST
8 PRESIDENT
9 ESMAN
10 ERK
11 ERK
12 NALYST
13 ERK
Name: job, dtype: object
3. R Programming (R Package)
gsub() 함수
R Programming |
%%R
gsub("(^[xy]+)", "", 'xyxyxxXxySTATWITH WITHMOOC')
Results |
[1] "XxySTATWITH WITHMOOC"
sub() 함수
R Programming |
%%R
sub("^[xy]+", "", 'xyxyxxXxySTATWITH WITHMOOC', perl = TRUE)
Results |
[1] "XxySTATWITH WITHMOOC"
gsub() 함수
R Programming |
%%R
gsub("(^[CL|SA]+)", "", emp$job)
Results |
[1] "ERK" "ESMAN" "ESMAN" "MANAGER" "ESMAN" "MANAGER"
[7] "MANAGER" "NALYST" "PRESIDENT" "ESMAN" "ERK" "ERK"
[13] "NALYST" "ERK"
sub() 함수
R Programming |
%%R
sub("^[CL|SA]+", "", emp$job, perl = TRUE)
Results |
[1] "ERK" "ESMAN" "ESMAN" "MANAGER" "ESMAN" "MANAGER"
[7] "MANAGER" "NALYST" "PRESIDENT" "ESMAN" "ERK" "ERK"
[13] "NALYST" "ERK"
4. R Dplyr Package
sub() 함수
R Programming |
%%R
emp %>%
dplyr::mutate(str_ltrim = sub("^[CL|SA]+", "", job, perl = TRUE)) %>%
head()
Results |
# A tibble: 6 x 9
empno ename job mgr hiredate sal comm deptno str_ltrim
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl> <chr>
1 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 ERK
2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 ESMAN
3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 ESMAN
4 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 MANAGER
5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 ESMAN
6 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 MANAGER
5. R sqldf Package
ltrim() 함수
R Programming |
%%R
sqldf(" SELECT LTRIM('xyxyxxXxySTATWITH WITHMOOC','xy') str_ltrim ")
Results |
str_ltrim
1 XxySTATWITH WITHMOOC
ltrim() 함수
R Programming |
%%R
sqldf(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim from emp")
Results |
job str_ltrim
1 CLERK ERK
2 SALESMAN ESMAN
3 SALESMAN ESMAN
4 MANAGER MANAGER
5 SALESMAN ESMAN
6 MANAGER MANAGER
7 MANAGER MANAGER
8 ANALYST NALYST
9 PRESIDENT PRESIDENT
10 SALESMAN ESMAN
11 CLERK ERK
12 CLERK ERK
13 ANALYST NALYST
14 CLERK ERK
6. Python pandasql Package
ltrim() 함수
Python Programming |
ps.sqldf(" SELECT LTRIM('xyxyxxXxySTATWITH WITHMOOC','xy') str_ltrim ")
Results |
str_ltrim
0 XxySTATWITH WITHMOOC
ltrim() 함수
Python Programming |
ps.sqldf(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim from emp ").head()
Results |
job str_ltrim
0 CLERK ERK
1 SALESMAN ESMAN
2 SALESMAN ESMAN
3 MANAGER MANAGER
4 SALESMAN ESMAN
7. R data.table Package
sub() 함수
R Programming |
%%R
DT <- data.table(emp)
dept_DT <- data.table(dept)
DT[, str_ltrim := sub("^[CL|SA]+", "", job, perl = TRUE)][1:10, ]
Results |
empno ename job mgr hiredate sal comm deptno str_ltrim
1: 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 ERK
2: 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 ESMAN
3: 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 ESMAN
4: 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 MANAGER
5: 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 ESMAN
6: 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 MANAGER
7: 7782 CLARK MANAGER 7839 1981-01-09 2450 NA 10 MANAGER
8: 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20 NALYST
9: 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10 PRESIDENT
10: 7844 TURNER SALESMAN 7698 1981-09-08 1500 0 30 ESMAN
8. Python DuckDB의 SQL
Python Programming |
%%sql
SELECT LTRIM('xyxXxySTATWITH WITHMOOC','xy') "LTRIM example"
Python Programming |
duckdb.sql(" SELECT LTRIM('xyxXxySTATWITH WITHMOOC','xy') LTRIM_example ").df()
Results |
LTRIM_example
0 XxySTATWITH WITHMOOC
Python Programming |
%%sql
SELECT JOB, LTRIM(job,'CL|SA') str_ltrim
from emp
LIMIT 6
Python Programming |
duckdb.sql(" SELECT JOB, LTRIM(job,'CL|SA') str_ltrim \
from emp \
LIMIT 6 ").df()
Results |
job str_ltrim
0 CLERK ERK
1 SALESMAN ESMAN
2 SALESMAN ESMAN
3 MANAGER MANAGER
4 SALESMAN ESMAN
5 MANAGER MANAGER
--------------------------------------------
[Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table] 오라클 함수와 R & Python 비교 사전 목록 링크 |
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크 |
반응형
댓글