본문 바로가기
통계프로그램 비교 시리즈/프로그래밍비교(Oracle,Python,R,SAS)

[데이터 추출] 값이 존재하지 않는 NULL 데이터 추출 - 96

by 기서무나구물 2022. 9. 28.

포스팅 목차

     

    96. Display those employees who are not working under any manger.

     

    * 담당 관리자가 존재하지 않는 직원의 정보를 출력하시오.


    • Oracle : is null
    • 파이썬 Pandas : isna(), isnull(), query()
    • R 프로그래밍 : is.na(), which(), is.na()
    • R Dplyr Package : filter(), is.na()
    • R sqldf Package : is null
    • Python pandasql Package : is null
    • R data.table Package : is.na()
    • SAS Proc SQL : is null, 결측치 선택
    • SAS Data Step : 결측치 선택
    • Python Dfply Package : filter_by, is.na(), isnull()
    • 파이썬 Base 프로그래밍 :

     


    1. Oracle(오라클)

    is null 연산자를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    Oracle Programming
    select * 
    from   emp 
    where  mgr is null;

     


    2. Python Pandas(파이썬)

    isna() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    Python Programming
    emp[emp['mgr'].isna()]

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDENT NaN 1981/11/17 5000 NaN 10

     


    isnull() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    Python Programming
    emp.loc[(emp.mgr.isnull()) , ]

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDENT NaN 1981/11/17 5000 NaN 10

     


    isnull() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    Python Programming
    emp.query('mgr.isnull()', engine='python')[["empno","ename"]]

     


    Results
    empno ename
    7839 KING

     


    3. R Programming (R Package)

    is.na() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    R Programming
    %%R
    emp[is.na(emp$mgr)  ,  ]

     

     

    Results
    # A tibble: 1 x 8
      empno ename job         mgr hiredate     sal  comm deptno
      <dbl> <chr> <chr>     <dbl> <date>     <dbl> <dbl>  <dbl>
    1  7839 KING  PRESIDENT    NA 1981-11-17  5000    NA     10

     


    is.na() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    R Programming
    %%R
    emp[which(is.na(emp$mgr) ), c("empno","ename") ]

     

     

    Results
    # A tibble: 1 x 2
      empno ename
      <dbl> <chr>
    1  7839 KING 

     


    4. R Dplyr Package

    filter함수와 is.na() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    R Programming
    %%R
    emp %>% filter(is.na(mgr)  ) 

     

     

    Results
    # A tibble: 1 x 8
      empno ename job         mgr hiredate     sal  comm deptno
      <dbl> <chr> <chr>     <dbl> <date>     <dbl> <dbl>  <dbl>
    1  7839 KING  PRESIDENT    NA 1981-11-17  5000    NA     10

     


    5. R sqldf Package

    is null 연산자를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    R Programming
    %%R
    
    sqldf("select * from emp where mgr is null")

     

     

    Results
      empno ename       job mgr   hiredate  sal comm deptno
    1  7839  KING PRESIDENT  NA 1981-11-17 5000   NA     10

     


    6. Python pandasql Package

    is null 연산자를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    Python Programming
    ps.sqldf("select * from emp where mgr is null")

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDENT None 1981/11/17 5000 None 10

     


    7. R data.table Package

    is.na() 함수를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    salgrade_DT <- data.table(salgrade)
    
    DT[ is.na(mgr), ]

     

     

    Results
       empno ename       job mgr   hiredate  sal comm deptno
    1:  7839  KING PRESIDENT  NA 1981-11-17 5000   NA     10

     


    8. SAS Proc SQL

    is null 연산자를 사용하여서 관리자(‘mgr’) 정보가 존재하지 않는 직원의 정보를 출력한다.

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        select * 
        from   emp 
        where  mgr is null;
    QUIT;
    PROC PRINT;RUN;

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDEN . 1981-11-17 5000 . 10

     


    관리자(‘mgr’) 정보가 존재하지 않는(결측치) 직원의 정보를 출력한다.

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        select * 
        from   emp 
        where  mgr = .;
    QUIT;
    PROC PRINT;RUN;

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDEN . 1981-11-17 5000 . 10

     


    9. SAS Data Step

     

    SAS Programming
    %%SAS sas
    
    DATA STATSAS_2;
     MERGE EMP;
         where  mgr = .;
    RUN;
    PROC PRINT;RUN;

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDEN . 1981-11-17 5000 . 10

     


    10. Python Dfply Package

     

    Python Programming
    emp >> filter_by( X.mgr.isna() ) 

     

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDENT NaN 1981/11/17 5000 NaN 10

     


     

    Python Programming
    emp >> filter_by( X.mgr.isnull() ) 

     


    Results
    empno ename job mgr hiredate sal comm deptno
    7839 KING PRESIDENT NaN 1981/11/17 5000 NaN 10

     


    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]   SQL EMP 예제로 만나는 테이블 데이터 전처리 방법 리스트

    반응형

    댓글