ファイルからデータを取得する
Kotlin Notebook は、Kotlin DataFrame ライブラリと組み合わせることで、非構造化データと構造化データの両方を扱うことができます。この組み合わせにより、TXT ファイルに含まれるデータなどの非構造化データを、構造化されたデータセットに変換する柔軟性が得られます。
データの変換には、add、split、convert、parse などのメソッドを使用できます。さらに、このツールセットを使用すると、CSV、JSON、XLS、XLSX、Apache Arrow など、さまざまな構造化ファイル形式からデータを取得し、操作することができます。
このガイドでは、複数の例を通して、データの取得、精製、および処理の方法を学ぶことができます。
始める前に
Kotlin Notebook は、IntelliJ IDEA にデフォルトでバンドルされ、有効になっている Kotlin Notebook プラグインに依存しています。
Kotlin Notebook の機能が利用できない場合は、プラグインが有効になっていることを確認してください。詳細については、「環境の設定」を参照してください。
新しい Kotlin Notebook を作成します:
File | New | Kotlin Notebook を選択します。
Kotlin Notebook で、次のコマンドを実行して Kotlin DataFrame ライブラリをインポートします:
kotlin%use dataframe
ファイルからデータを取得する
Kotlin Notebook でファイルからデータを取得するには:
Kotlin Notebook ファイル(
.ipynb)を開きます。ノートブックの冒頭のコードセルに
%use dataframeを追加して、Kotlin DataFrame ライブラリをインポートします。Kotlin DataFrame ライブラリに依存する他のコードセルを実行する前に、必ず
%use dataframeの行を含むコードセルを実行してください。データの取得には、Kotlin DataFrame ライブラリの
.read()関数を使用します。例えば、CSV ファイルを読み込むには、DataFrame.read("example.csv")を使用します。
.read() 関数は、ファイルの拡張子と内容に基づいて入力形式を自動的に検出します。また、delimiter = ';' で区切り文字を指定するなど、関数をカスタマイズするための引数を追加することもできます。
追加のファイル形式やさまざまな読み込み関数の包括的な概要については、Kotlin DataFrame ライブラリのドキュメントを参照してください。
データの表示
データをノートブックに読み込んだら、それを変数に保存し、コードセルで次を実行することで簡単にアクセスできます:
val dfJson = DataFrame.read("jsonFile.json")
dfJsonこのコードは、CSV、JSON、XLS、XLSX、Apache Arrow など、選択したファイルからのデータを表示します。

データの構造やスキーマを把握するには、DataFrame 変数に .schema() 関数を適用します。例えば、dfJson.schema() は JSON データセット内の各列の型をリスト表示します。

また、Kotlin Notebook のオートコンプリート機能を使用して、DataFrame のプロパティに素早くアクセスし、操作することもできます。データを読み込んだ後、DataFrame 変数の後にドットを入力するだけで、利用可能な列とその型の一覧が表示されます。

データの精製
データセットを精製するために Kotlin DataFrame ライブラリで利用できるさまざまな操作のうち、主な例としてグルーピング、フィルタリング、更新、新しい列の追加などがあります。これらの関数はデータ分析に不可欠であり、データを効果的に整理、クリーンアップ、変換することができます。
映画のタイトルと同じセルに対応する公開年が含まれているデータの例を見てみましょう。目標は、分析しやすくするためにこのデータセットを精製することです:
.read()関数を使用して、ノートブックにデータを読み込みます。この例では、movies.csvという名前の CSV ファイルからデータを読み込み、moviesという名前の DataFrame を作成します:kotlinval movies = DataFrame.read("movies.csv")正規表現を使用して映画のタイトルから公開年を抽出し、新しい列として追加します:
kotlinval moviesWithYear = movies .add("year") { "\\d{4}".toRegex() .findAll(title) .lastOrNull() ?.value ?.toInt() ?: -1 }各タイトルから公開年を削除して、映画のタイトルを修正します。これにより、一貫性を保つためにタイトルがクリーンアップされます:
kotlinval moviesTitle = moviesWithYear .update("title") { "\\s*\\(\\d{4}\\)\\s*$".toRegex().replace(title, "") }filterメソッドを使用して、特定のデータに焦点を当てます。このケースでは、1996 年以降に公開された映画に焦点を当てるよう、データセットをフィルタリングします:kotlinval moviesNew = moviesWithYear.filter { year >= 1996 } moviesNew
比較のために、精製前のデータセットを以下に示します:

精製後のデータセット:

これは、Kotlin でデータを効果的に精製および分析するために、add、update、filter といった Kotlin DataFrame ライブラリのメソッドをどのように使用できるかを示す実用的なデモンストレーションです。
追加のユースケースや詳細な例については、Kotlin Dataframe の例を参照してください。
DataFrame の保存
Kotlin Notebook でデータを精製した後、Kotlin DataFrame ライブラリを使用して、処理済みのデータを簡単にエクスポートできます。この目的のためにさまざまな .write() 関数を利用でき、CSV、JSON、XLS、XLSX、Apache Arrow、さらには HTML テーブルなど、複数の形式での保存をサポートしています。 これは、知見を共有したり、レポートを作成したり、さらなる分析のためにデータを利用可能にしたりするのに特に役立ちます。
DataFrame をフィルタリングし、列を削除し、精製したデータを JSON ファイルに保存し、ブラウザで HTML テーブルを開く方法は次のとおりです:
Kotlin Notebook で、
.read()関数を使用してmovies.csvという名前のファイルをmoviesDfという名前の DataFrame に読み込みます:kotlinval moviesDf = DataFrame.read("movies.csv").filterメソッドを使用して、"Action" ジャンルに属する映画のみが含まれるように DataFrame をフィルタリングします:kotlinval actionMoviesDf = moviesDf.filter { genres.equals("Action") }.removeを使用して、DataFrame からmovieId列を削除します:kotlinval refinedMoviesDf = actionMoviesDf.remove { movieId } refinedMoviesDfKotlin DataFrame ライブラリは、さまざまな形式でデータを保存するための各種書き込み関数を提供しています。この例では、
.writeJson()関数を使用して、修正したmovies.csvを JSON ファイルとして保存します:kotlinrefinedMoviesDf.writeJson("movies.json").toStandaloneHTML()関数を使用して DataFrame をスタンドアロンの HTML テーブルに変換し、デフォルトの Web ブラウザで開きます:kotlinrefinedMoviesDf.toStandaloneHTML(DisplayConfiguration(rowsLimit = null)).openInBrowser()
次のステップ
- Kandy ライブラリを使用したデータの可視化を探索する
- Kandy を使用した Kotlin Notebook でのデータの可視化でデータの可視化に関する追加情報を見つける
- Kotlin でのデータサイエンスと分析に利用可能なツールとリソースの広範な概要については、データ分析用の Kotlin および Java ライブラリを参照してください。
