[go] CSV 파일의 데이터 필터링

CSV 파일에서 데이터를 필터링하려면 Go 언어에서 내장된 encoding/csv 패키지를 활용하여 간단하게 수행할 수 있습니다. 이 블로그 포스트에서는 Go 언어를 사용하여 CSV 파일에서 데이터를 필터링하는 방법에 대해 알아보겠습니다.

1. CSV 파일 읽기

우선, CSV 파일에서 데이터를 읽어오는 방법에 대해 알아보겠습니다. 다음과 같이 osencoding/csv 패키지를 임포트하여 CSV 파일을 열고 데이터를 읽어올 수 있습니다.

package main

import (
	"encoding/csv"
	"os"
	"log"
)

func main() {
	// CSV 파일 열기
	file, err := os.Open("data.csv")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	// CSV 파일 파싱
	reader := csv.NewReader(file)
	records, err := reader.ReadAll()
	if err != nil {
		log.Fatal(err)
	}
	
	// 읽은 데이터 출력
    for _, row := range records {
        fmt.Println(row)
    }
}

2. 데이터 필터링

CSV 파일에서 특정 조건을 만족하는 데이터만을 필터링하는 방법은 다양합니다. 예를 들어, 특정 열의 값을 기준으로 데이터를 필터링하거나, 조건에 따라 데이터를 선택적으로 추출할 수 있습니다.

// 열의 값을 기준으로 필터링하기
var filteredRecords [][]string
for _, row := range records {
    if row[2] == "criteria" {
        filteredRecords = append(filteredRecords, row)
    }
}

위의 예제에서는 세 번째 열의 값이 “criteria”와 같은 경우에 해당하는 데이터만을 filteredRecords에 추가하는 방법을 보여줍니다.

3. 결과 출력

마지막으로, 필터링된 결과를 화면에 출력하거나 다른 파일에 쓰는 등의 작업을 수행할 수 있습니다.

// 결과 출력
for _, row := range filteredRecords {
    fmt.Println(row)
}

요약

이제 CSV 파일에서 데이터를 읽어오고 필터링하는 방법에 대해 알아보았습니다. encoding/csv 패키지를 활용하여 데이터를 쉽게 파싱하고 조작할 수 있으며, 이를 통해 다양한 데이터 처리 작업을 수행할 수 있습니다.

내용에 대한 추가적인 질문이 있으시다면, 언제든지 문의해 주세요.

Go 공식 문서에서 encoding/csv 패키지에 대한 자세한 정보를 확인할 수 있습니다.