[go] CSV 파일의 데이터 통계량 계산
CSV 파일은 데이터를 저장하고 전송하는 데 널리 사용되는 형식입니다. 데이터 통계량을 계산하려면 CSV 파일의 데이터를 읽어와야 합니다. Go 언어에서는 encoding/csv
패키지를 사용하여 CSV 파일을 읽고 처리할 수 있습니다. 이 패키지를 활용하여 CSV 파일의 데이터 통계량을 계산하는 방법을 알아보겠습니다.
필요한 패키지 가져오기
먼저, CSV 파일을 처리하기 위해 필요한 패키지를 가져옵니다.
import (
"encoding/csv"
"os"
"log"
"strconv"
)
CSV 파일 읽기
다음으로, CSV 파일을 읽어와야 합니다. 아래의 예제는 CSV 파일을 읽고, 각 열의 데이터를 적절히 파싱하여 2차원 슬라이스에 저장하는 방법을 보여줍니다.
func readCSVFile(filename string) [][]string {
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
log.Fatal(err)
}
return records
}
데이터 통계량 계산
이제 CSV 파일에서 읽어온 데이터를 활용하여 데이터 통계량을 계산하는 함수를 만들어보겠습니다. 아래의 예제는 각 열의 합계, 평균, 최댓값, 최솟값을 계산하는 방법을 보여줍니다.
func calculateStatistics(data [][]string) {
// Assume the CSV data has numeric values in the second column onwards
for col := 1; col < len(data[0]); col++ {
var sum, max, min float64
count := 0
for _, row := range data {
val, err := strconv.ParseFloat(row[col], 64)
if err != nil {
continue
}
sum += val
count++
if count == 1 || val > max {
max = val
}
if count == 1 || val < min {
min = val
}
}
average := sum / float64(count)
// Print or use the calculated statistics as required
log.Printf("Column %d - Sum: %.2f, Average: %.2f, Max: %.2f, Min: %.2f", col, sum, average, max, min)
}
}
결과 출력
위의 예제들을 활용하여 CSV 파일의 데이터 통계량을 계산하고 결과를 출력할 수 있습니다. 아래는 전체적인 처리과정을 보여주는 예제입니다.
func main() {
filename := "data.csv"
data := readCSVFile(filename)
calculateStatistics(data)
}
이렇게하면 Go를 사용하여 CSV 파일의 데이터 통계량을 계산할 수 있습니다. 데이터 통계량을 계산하는 과정에서 고려해야 할 다양한 요소들이 있으므로 실제 데이터 및 요구 사항에 따라 적절한 처리 방법을 선택해야 합니다.
자세한 내용은 Go 공식 문서를 참조하세요.
제가 도와드린 내용에 대해 궁금한 점이 있나요?