Allen's 데이터 맛집
[2] Java를 사용한 간단한 범죄 통계 데이터 분석 본문
이번엔 Java를 사용하여 범죄 통계 데이터를 분석하는 방법을 소개하겠습니다. 특히, CrimeStatistics 클래스를 사용하여 CSV 파일에서 데이터를 읽고, 이를 분석하여 통계 정보를 도출해 보겠습니다.
코드 설명
전체 코드
import java.io.*;
public class CrimeStatistics {
public static void main(String[] args) {
String[][] indat = new String[50][20];
double[][] inndat = new double[50][20];
try {
File csv = new File("C:\\Users\\82108\\Desktop\\Tools\\2016_Criminal_Record.csv");
BufferedReader br = new BufferedReader(new FileReader(csv));
String line = "";
int row = 0;
int i = 0;
while ((line = br.readLine()) != null) {
String[] token = line.split(",");
for (i = 0; i < 15; i++) {
indat[row][i] = (token[i]);
String str = indat[row][i];
str = str.replaceAll("\\-", "0");
indat[row][i] = str;
}
row++;
}
for (int y = 1; y < 39; y++) {
for (int x = 2; x < 4; x++) {
int value = Integer.parseInt(indat[y][x]);
inndat[y][x] = value;
}
}
double sum = 0;
for (int y = 1; y < 39; y++) {
sum = inndat[y][3] / inndat[y][2];
System.out.printf("%s %.2f%% \n", indat[y][1], sum * 100);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
코드 설명
- 변수 초기화:
String[][] indat = new String[50][20];
double[][] inndat = new double[50][20];
- indat 배열은 CSV 파일에서 읽어온 문자열 데이터를 저장합니다.
- inndat 배열은 문자열 데이터를 정수로 변환한 값을 저장합니다.
2. CSV 파일 읽기:
File csv = new File("C:\\Users\\82108\\Desktop\\Tools\\2016_Criminal_Record.csv");
BufferedReader br = new BufferedReader(new FileReader(csv));
String line = "";
int row = 0;
int i = 0;
while ((line = br.readLine()) != null) {
String[] token = line.split(",");
for (i = 0; i < 15; i++) {
indat[row][i] = (token[i]);
String str = indat[row][i];
str = str.replaceAll("\\-", "0");
indat[row][i] = str;
}
row++;
}
- CSV 파일을 읽어와 BufferedReader 객체를 사용하여 각 줄을 읽습니다.
- 각 줄을 쉼표(,)로 분리하여 indat 배열에 저장합니다.
- 값이 없는 경우(-)를 0으로 대체합니다.
3. 데이터 변환:
for (int y = 1; y < 39; y++) {
for (int x = 2; x < 4; x++) {
int value = Integer.parseInt(indat[y][x]);
inndat[y][x] = value;
}
}
- indat 배열의 문자열 데이터를 정수로 변환하여 inndat 배열에 저장합니다.
4. 통계 정보 계산 및 출력:
double sum = 0;
for (int y = 1; y < 39; y++) {
sum = inndat[y][3] / inndat[y][2];
System.out.printf("%s %.2f%% \n", indat[y][1], sum * 100);
}
br.close();
- inndat 배열의 값을 사용하여 특정 통계 정보를 계산합니다.
- 계산된 값을 형식에 맞게 출력합니다.
https://github.com/siilver94/Analyze-Data-in-CSV
GitHub - siilver94/Analyze-Data-in-CSV
Contribute to siilver94/Analyze-Data-in-CSV development by creating an account on GitHub.
github.com
728x90