ファイルからデータを取得する
Kotlin Notebookは、Kotlin DataFrameライブラリと組み合わせることで、非構造化データと構造化データの両方を扱うことができます。この組み合わせにより、TXTファイルに含まれるデータなどの非構造化データを構造化データセットに変換する柔軟性が提供されます。
データ変換には、add
、split
、convert
、parse
などのメソッドを使用できます。さらに、このツールセットは、CSV、JSON、XLS、XLSX、Apache Arrowなどの様々な構造化ファイル形式からのデータの取得と操作を可能にします。
このガイドでは、複数の例を通して、データの取得、整形、および処理の方法を学ぶことができます。
始める前に
Kotlin Notebookは、Kotlin Notebookプラグインに依存しており、このプラグインはIntelliJ IDEAにデフォルトでバンドルされ、有効化されています。
Kotlin Notebookの機能が利用できない場合は、プラグインが有効になっていることを確認してください。詳細については、環境をセットアップするを参照してください。
新しいKotlin Notebookを作成する:
File | New | Kotlin Notebookを選択します。
Kotlin Notebookで、次のコマンドを実行してKotlin DataFrameライブラリをインポートします。
kotlin%use dataframe
ファイルからデータを取得する
Kotlin Notebookでファイルからデータを取得するには:
- Kotlin Notebookファイル (
.ipynb
) を開きます。 - ノートブックの先頭にあるコードセルに
%use dataframe
を追加して、Kotlin DataFrameライブラリをインポートします。NOTE
Kotlin DataFrameライブラリに依存する他のコードセルを実行する前に、
%use dataframe
行を含むコードセルを必ず実行してください。 - Kotlin DataFrameライブラリの
.read()
関数を使用してデータを取得します。例えば、CSVファイルを読み込むには、DataFrame.read("example.csv")
を使用します。
.read()
関数は、ファイル拡張子と内容に基づいて入力形式を自動的に検出します。delimiter = ';'
でデリミタを指定するなど、関数をカスタマイズするために他の引数を追加することもできます。
TIP
その他のファイル形式と様々な読み取り関数の包括的な概要については、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ライブラリのメソッドを使用してデータを効果的に整形し、分析する方法を実践的に示すものです。
TIP
追加のユースケースと詳細な例については、Examples of Kotlin Dataframeを参照してください。
DataFrameを保存する
Kotlin DataFrameライブラリを使用してKotlin Notebookでデータを整形した後、処理されたデータを簡単にエクスポートできます。この目的のために、CSV、JSON、XLS、XLSX、Apache Arrow、さらにはHTMLテーブルを含む複数の形式での保存をサポートする様々な.write()
関数を利用できます。これは、調査結果の共有、レポートの作成、またはさらなる分析のためにデータを利用可能にするのに特に役立ちます。
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 } refinedMoviesDf
Kotlin 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のデータ分析ライブラリを参照してください