관심 대상 집합을 포함하는 행을 필터링

- Name열에서 집합 ['kyungan3', 'kyungan5']중 한 값을 포함하는 모든 행

- Date열에서 집합 ['2007-06-04', '2007-11-13']중 한 값을 포함하는 모든 행

 

다음 예제 코드는 행의 데이터 값이 어떤 집합의 원소를 포함하는지 판별하고, 전체 행에서 관심집합의 값을 포함하는 행들(부분집합)을 찾아 화면 및 파일로 출력

 

 

 

 

- 코드설명 -

 


  7 #important_dates = ['2007-06-04', '2007-11-13', '2007-12-12']

  8 important_stations = ['kyungan3', 'kyungan5']


 

8행(7행)

- 관심값에 해당하는 name을 important_stations 변수에 리스트형(type)으로 할당

 


 19          #a_date = row_list[2]

 20          a_name = row_list[1]

 21          #if a_date in important_dates:

 22          if a_name in important_stations:

 23             print(row_list)

 24             fwriter.writerow(row_list)


 

20행(19행)

- freader로 읽은 csv 파일의 각 행에서 name열(row_list[1])을 로드하여 a_name변수에 할당

( - freader로 읽은 csv 파일의각 행에서 date열(row_list[2])을 로드하여 a_date변수에 할당 )

22행(21행)

- if 문을 사용해 a_name 변수에 들어있는 name 열의 데이터 값이 important_stations 에 있는 관심 집합에 포함되는지 판별

( - if 문을 사용해 a_date 변수에 들어있는 date 열의 데이터 값이 important_date에 있는 관심 집합에 포함되는지 판별 )

23행, 24행

- 22행의 판별결과로 a_name가 important_stations에 포함된다면, 화면 및 파일에 출력

 

(*) 주석 처리된 부분을 기존 코드와 대체하면 - 관심값을 name에서 date로 변경하여 필터링

 

 

 

(*) 출력파일로 설정한 r_filtering_value_in_set.csv를 통해 결과 확인

(*) 소스코드 첨부(csv파일은 [CSV]파일 읽고 쓰기(2) 에서 확인가능...)

 

4_filtering_value_in_set.zip

 

Posted by Roiz
,