본문 바로가기
공부/데이터 분석

[파이썬 데이터 분석 입문] Chapter 2. 연습문제

by sshnnne 2022. 9. 3.

1. 조건, 집합, 또는 정규 표현식에 따라 행을 필터링하는 스크립트 중 하나를 수정하여 예제에서 필터링한 것과 다른 행을 출력하고, 출력 파일을 작성해보라.

import csv
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

with open(input_file, 'r', newline = '') as csv_in_file:
	with open(output_file, 'w', newline = '') as csv_out_file:
    	filereader = csv.reader(csv_in_file)
        filewriter = csv.writer(csv_out_file)
        header = next(filereader)
        filewriter.writerow(header)
        
        for row_list in filereader:
        	invoice_number = str(row_list[1]).strip()
            part_number = str(row_list[2]).strip('$').replace(',','')
            
            if invoice_number == '123-4567' or float(part_number) = 1234 :
            	filewriter.writerow(row_list)

 

p. 117 의 기본 파이썬 코드를 invoice_number와 part_number를 필터링 하는 코드로 수정하였다.

 

 

2. 인덱스 값 또는 열 헤더를 기반으로 열을 필터링하는 스크립트 중 하나를 수정하여 예제에서 필터링한 것과 다른 열을 출력하고, 출력 파일을 작성해보라.

import pandas as pd
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

data_frame = pd.read_csv(input_file)
data_frame_column_by_index = data_frame.iloc[:, [1,2]]
data_frame_column_by_index.to_csv(output_file, index=False)

 

iloc() 함수를 사용해서 인덱스 값이 1과 2인 열을 출력하고 저장하도록 수정하였다.

 

 

3. 우선 폴더에 새로운 CSV 입력 파일들을 만들고, 별도의 출력 폴더를 만든다. 여러 개의 파일을 처리하는 스크립트 중 하나를 사용하여 새로운 입력 파일들을 처리하고 그 결과를 출력 파일로 만들어 해당 출력 폴더에 저장해보라.