'header'에 해당되는 글 2건

  1. 2019.01.07 [CSV] 헤더 추가하기
  2. 2018.11.27 [CSV] 열의 헤더를 사용하여 특정 열을 선택

[CSV] 헤더 추가하기

Python 2019. 1. 7. 20:45

CSV 파일에 헤더 행이 포함되어있지 않은경우 파이썬 스크립트를 이용해 헤더를 추가

 

다음 예제코드는 헤더가 없는 '200701-200712(NH).csv'를 로드하여 헤더를 입력하고,

이를 'r_add_header_row.csv'에 저장하는 코드

 

 

- 코드명 -

 


 11       header_list = ['','Name','Date','Round','pH','DO',\

 12                      'BOD','COD','SS','TN','T-P','Deg.',\

 13                      'EC','Total DJG','DN','Chl-a']

 14       fwriter.writerow(header_list)

 15       print(header_list)

 16       for row in freader:

 17          fwriter.writerow (row)

 18          print(row)


 

11행, 12행, 13행

- 각 열의 헤더에 해당하는 문자열 값이 들어있는 header_list 리스트 변수 생성

14행

- header_list 리스트변수의 값을 파일로 출력

15행

- header_list 리스트변수의 값을 화면에 출력

16행

- 입력된 csv파일의 모든 값에 대하여 반복작업 수행

17행

- 헤더행 뒤에 입력 csv파일의 모든 값을 파일로 출력

18행

- 헤더행 뒤에 입력 csv파일의 모든 값을 화면에 출력

 

(*) 출력파일 r_add_header_row.csv를 통해 결과확인

(*) 소스코드 및 CSV파일 첨부

 

소스코드 및 CSV(9).zip

 

 

Posted by Roiz
,

CSV 파일에 불필요한 열이 포함되어있는 경우, 필요한 열만 필터링하여 활용

- 열의 인덱스 값을 사용하는 방법

- 열의 헤더를 사용하는 방법

 

열의 헤더를 사용해 특정(관심) 열을 필터링

- 관심있는 열 헤더를 쉽게 식별가능

- 여러개의 입력 파일을 처리할 때 열의 헤더는 같지만 열의 위치가 입력 파일에 따라 다를 때

 

다음 예제 코드는 [CSV] 열의 인덱스 값을 사용하여 특정열을 선택 에서와 동일하게 Name 및 BOD, TN, T-P열만 사용하기 위한 필터링을 헤더명을 이용해 수행

 

 

 

 

- 코드설명 -

 


  7 selected_column_name = ['Name', 'BOD', 'T-P', 'TN']

  8 selected_column_index = [ ]


 

7행

- 관심있는 헤더명이 들어있는 리스트변수(selected_column_name) 생성

8행

- 뒤에서 관심열의 인덱스값이 들어갈 리스트변수(selected_column_index) 생성

 

 


 14       next(freader)

 15       header = next(freader)

 16       for index_value in range(len(header)):

 17          if header[index_value] in selected_column_name:

 18             selected_column_index.append(index_value)

 19       print(selected_column_name)

 20       fwriter.writerow(selected_column_name)


 

14행

- freader객체에 next()함수를 사용하여 헤더에서 사용되지 않는 행 삭제

15

- freader객체에 next()함수를 사용하여 헤더에서 사용되는 행을 header 리스트변수로 읽어옴

16행

- header 리스트변수로 읽어온 헤더의 인덱스 값에 대해 반복문 수행

17행

- if문과 리스트 인덱싱을 통해 각 열의 헤더가 관심 헤더명과 동일한 값인지 판별

- header[index_value]가 selected_column_name과 같다면 18행 수행 그렇지 않다면 for문으로...

18행

- 17행에서 판별한 값이 포함되어있는 index_value값을 selected_column_index리스트 변수에 추가

19, 20행

- 관심있는 헤더를 화면과 파일로 출력

 


 21       for row_list in freader: 

 22          row_list_output = []

 23          for index_value in selected_column_index

 24             row_list_output.append(row_list[index_value])

 25          print(row_list_output)

 26          fwriter.writerow(row_list_output)


 

21행

- 헤더를 제외한 CSV파일의 값에 대해 for문 수행

22행

- 포함하려는(관심있는)행의 데이터 값을 저장할 빈 리스트(row_list_output) 생성

23행

- selected_column_index의 값을 반복

24행

- 23행의 인덱스 값에 해당하는 열의 데이터 값을 row_list_output에 추가

25, 26

- row_list_output의 값을 화면 및 파일에 출력

 

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

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

 

 

7_filtering_by_column_name.zip

Posted by Roiz
,