티스토리 뷰

728x90
반응형

 

 

↓  튜토리얼1. 데이터 불러오기 및 데이터 조회

https://domdom.tistory.com/entry/java-Tablesaw-java-jTablesaw-tutorial-jTablesaw-%EA%B8%B0%EC%B4%88%EC%82%AC%EC%9A%A9%EB%B2%95

 

[java-Tablesaw] java jTablesaw tutorial! jTablesaw 기초사용법

python pandas와 비슷한(?) 기능을 가지고 있는 자바의 tablesaw를 사용해보려고 합니다. 자바에서도 CSV파일을 분석할 수 있다 ...!!!!!!!!! tablesaw 사용을 위해 pom.xml dependencies에 tablesaw를 추가해줍니..

domdom.tistory.com

 

 

 

이번 튜토리얼2에서는 불러온 데이터를 가지고 데이터 필터링을 하는 방법을 알아볼게요.

데이터 불러오고 조회하는 방법에 대해서는 튜토리얼 1편을 봐주세요~!

 

먼저 기본적인 필터링으로 10가지 종류가 있습니다

설명을 봐도 이해가 되지 않는다면 아래에서 직접 실행해보면서 확인해봅시다!

 

  필터링 설명
1 == 입력한 키워드와 동일한 데이터
2 !== 입력한 키워드와 동일하지 않은 데이터
3 Contain 입력한 키워드가 포함된 데이터
4 Not Contain 입력한 키워드가 포함되지 않은 데이터
5 in 입력한 여러 키워드들 중 한 키워드 이상 동일한 데이터
6 Not in 입력한 여러 키워드들 중 한 키워드 이상 동일하지 않은 데이터
7 startsWith 입력한 키워드로 시작하는 데이터
8 endsWith 입력한 키워드로 끝나는 데이터
9 isNull null인 데이터
10 NotNull null이 아닌 데이터

 

 

튜토리얼1에서 제가 사용한 데이터는

서울특별시_국민기초생활 수급자 동별 현황_07_31_2021.csv 입니다.

요 데이터를 가지고 데이터필터링도 진행해보도록 하겠습니다.

https://www.data.go.kr/data/15086093/fileData.do

 

서울특별시_국민기초생활 수급자 동별 현황_07/31/2021

서울특별시 자치구, 동별 기초생계급여, 기초의료급여, 기초주거급여, 기초교육급여 수급자의 연령별 현황 자료를 제공합니다.

www.data.go.kr

 

 

 

 

1. ==  : 입력한 키워드와 동일한 데이터

==> 시군구가 "종로구" 인 데이터만 추출

Table filter = tb.where(tb.stringColumn("시군구").isEqualTo("종로구"));
System.out.println(filter);

 

2. !== : 입력한 키워드와 동일하지 않은 데이터

==> 시군구가 "종로구"가 아닌 데이터만 추출

Table filter2 = tb.where(tb.stringColumn("시군구").isNotEqualTo("종로구"));
System.out.println(filter2);

 

 

 

3. Contain : 입력한 키워드가 포함된 데이터

==> 시군구에 "동구" 키워드가 포함된 데이터

Table filter3 = tb.where(tb.stringColumn("시군구").containsString("동구"));
System.out.println(filter3);

 

 

 

4. Not Contain : 입력한 키워드가 포함되지 않은 데이터

==> 시군구에 "동구" 키워드가 포함되지 않은 데이터

Table filter4 = tb.dropWhere(tb.stringColumn("시군구").containsString("동구"));
System.out.println(filter4);

 

 

 

5. in : 입력한 여러 키워드들 중 한 키워드 이상 동일한 데이터

==> 시군구가 "종로구", "강동구" 인 데이터

Table filter5 = tb.where(tb.stringColumn("시군구").isIn("종로구", "강동구"));
System.out.println(filter5);

 

 

 

 

6. Not in : 입력한 여러 키워드들 중 한 키워드 이상 동일하지 않은 데이터

==> 시군구가 "종로구", "강동구"가 아닌 데이터

Table filter6 = tb.where(tb.stringColumn("시군구").isNotIn("종로구", "강동구"));
System.out.println(filter6);

 

 

7. startsWith : 입력한 키워드로 시작하는 데이터

==> 시군구가 "강"으로 시작하는 데이터

Table filter7 = tb.where(tb.stringColumn("시군구").startsWith("강"));
System.out.println(filter7);

 

 

 

8. endsWith : 입력한 키워드로 끝나는 데이터

==> 시군구가 "로구"로 끝나는 데이터

Table filter8 = tb.where(tb.stringColumn("시군구").endsWith("로구"));
System.out.println(filter8);

 

9. isNull : null인 데이터

==> 시군구가 공백이거나 null 인 데이터

tb.where(tb.stringColumn("시군구").isMissing());

 

 

10. Not null : null이 아닌 데이터

==> 시군구가 공백이거나 null이 아닌 데이터

공백, null만 제외하고 출력됨을 보여주기 위해서 

공백, null, none 을 시군구에 넣어봤어요

공백, null은 모두 지워졌지만 none은 필터링 되지 않았습니다 !

 

 

 

 

그 외 여러 멀티 필터링이 들어갈 때의 사용법 예시

Table filtered = aTable.where(
        aTable.stringColumn("Status").isEqualTo("Ok")
 			.and(aTable.numberColumn("Age").isGreaterThan(21)));

 

 

 

더 많은 필터링에 대해서는 아래 tablesaw 깃헙 URL을 참고해주세요!

https://jtablesaw.github.io/tablesaw/userguide/filters.html

 

tablesaw

Java dataframe and visualization library

jtablesaw.github.io

 

 

 

728x90
반응형
댓글