- Apache Commons CSVを使用する方法: Apache Commons CSVは、CSVファイルを効率的に操作するためのライブラリです。以下のコードは、Apache Commons CSVを使用して欠損値を0で置換する例です。
import org.apache.commons.csv.*;
public class CSVReplacementExample {
public static void main(String[] args) throws Exception {
CSVParser parser = CSVParser.parse(new File("input.csv"), Charset.defaultCharset(), CSVFormat.DEFAULT.withHeader());
for (CSVRecord record : parser) {
for (String header : parser.getHeaderMap().keySet()) {
String value = record.get(header);
if (value.equals("NaN")) {
record.put(header, "0");
}
}
}
parser.close();
// 置換後のCSVファイルを保存するなどの処理を追加することができます
}
}
- OpenCSVを使用する方法: OpenCSVは、JavaでCSVファイルを簡単に操作するためのライブラリです。以下のコードは、OpenCSVを使用して欠損値を0で置換する例です。
import com.opencsv.*;
public class CSVReplacementExample {
public static void main(String[] args) throws Exception {
CSVReader reader = new CSVReader(new FileReader("input.csv"));
CSVWriter writer = new CSVWriter(new FileWriter("output.csv"));
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
for (int i = 0; i < nextLine.length; i++) {
if (nextLine[i].equals("NaN")) {
nextLine[i] = "0";
}
}
writer.writeNext(nextLine);
}
reader.close();
writer.close();
}
}
- Javaの基本的なファイル操作を使用する方法: CSVファイルをパースせずに、Javaの基本的なファイル操作を使用して欠損値を0で置換することもできます。以下のコードはその例です。
import java.io.*;
public class CSVReplacementExample {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("input.csv"));
BufferedWriter writer = new BufferedWriter(new FileWriter("output.csv"));
String line;
while ((line = reader.readLine()) != null) {
String[] values = line.split(",");
for (int i = 0; i < values.length; i++) {
if (values[i].equals("NaN")) {
values[i] = "0";
}
}
writer.write(String.join(",", values));
writer.newLine();
}
reader.close();
writer.close();
}
}
これらはいくつかの方法ですが、他にもさまざまなアプローチがあります。CSVファイルの構造や要件に応じて、最適な方法を選択してください。