JSON データの分析
商品カタログを読み込んだら、マーケティングチームから価格レポートの作成を依頼されました。平均価格の把握、最も高価な商品の特定、そしてカテゴリ別の商品分布の確認が求められています。
便利なことに、JSON データを Tablesaw のテーブルに取り込んでしまえば、これまで学んだ列操作をそのまま活用できます。
JsonReader、JsonReadOptions、Table クラスはすでにインポート済みです。products.json ファイルには name、price、category の各列が含まれています。
この演習はコースの一部です
Java でのデータインポート
演習の手順
- JSON の読み込みを完成させて、商品テーブルを読み込みましょう。
- 列のメソッドを使って平均価格を計算しましょう。
- データセット内の最高価格を求めましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
public class JSONAnalysis {
public static void main(String[] args) {
// Complete the JSON read
JsonReadOptions options = JsonReadOptions.builder("products.json").build();
Table products = new JsonReader().____(options);
// Calculate average price
double avgPrice = products.doubleColumn("price").____();
// Find maximum price
DoubleColumn priceCol = products.doubleColumn("price");
double maxPrice = ____.____();
String mostExpensive = products
.where(priceCol.isEqualTo(maxPrice))
.stringColumn("name").get(0);
Table categoryCount = products.countBy("category");
System.out.println("Product Analytics Report:");
System.out.println("========================");
System.out.printf("Average Price: $%.2f%n", avgPrice);
System.out.println("Most Expensive: " + mostExpensive + " ($" + maxPrice + ")");
System.out.println("\nCategory Distribution:");
System.out.println(categoryCount.print());
}
}