[java] OpenCSV를 사용하여 CSV 파일에 대한 요약 통계를 생성하는 방법은?

CSV(Comma Separated Values) 파일은 데이터를 쉼표(,)로 구분하여 저장하는 파일 형식입니다. 이러한 CSV 파일에서 데이터를 읽고 요약 통계를 생성하기 위해 OpenCSV 라이브러리를 사용할 수 있습니다.

OpenCSV 라이브러리 추가하기

먼저, 프로젝트에 OpenCSV 라이브러리를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5.2</version>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가합니다.

implementation 'com.opencsv:opencsv:5.5.2'

의존성을 추가한 후에는 빌드 도구를 사용하여 라이브러리를 다운로드하고 프로젝트에 추가합니다.

CSV 파일 읽기

다음으로, OpenCSV를 사용하여 CSV 파일을 읽어옵니다. 읽어온 데이터는 2차원 배열 형태로 저장됩니다. 아래는 CSV 파일을 읽고 2차원 배열로 저장하는 코드 예시입니다.

import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;

public class CSVStatistics {

    public static void main(String[] args) {
        try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
            String[][] data = reader.readAll();
            // 데이터 처리 및 요약 통계 생성
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

data.csv는 읽어올 CSV 파일의 경로에 해당하는 부분을 수정해야 합니다.

요약 통계 생성

이제 CSV 파일에서 읽어온 데이터를 사용하여 요약 통계를 생성할 수 있습니다. 예를 들어, CSV 파일의 각 열에 대한 평균, 최대값, 최소값 등을 계산하고 출력하는 코드 예시를 보여드리겠습니다.

import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

public class CSVStatistics {

    public static void main(String[] args) {
        try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
            String[][] data = reader.readAll();

            for (int i = 0; i < data[0].length; i++) { // 각 열에 대해 반복
                double[] columnData = new double[data.length];
                for (int j = 0; j < data.length; j++) {
                    columnData[j] = Double.parseDouble(data[j][i]);
                }
                double average = Arrays.stream(columnData).average().orElse(0);
                double max = Arrays.stream(columnData).max().orElse(0);
                double min = Arrays.stream(columnData).min().orElse(0);

                System.out.printf("Column %d: Average=%.2f, Max=%.2f, Min=%.2f%n", i + 1, average, max, min);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 data.csv 파일의 각 열을 순회하면서 데이터를 읽고, 해당 열의 평균, 최대값, 최소값을 계산하여 출력합니다.

이렇게 OpenCSV를 사용하여 CSV 파일에 대한 요약 통계를 생성할 수 있습니다. 물론, 필요에 따라 요약 통계의 종류와 출력 형식을 자유롭게 수정할 수 있습니다.

참고자료