從檔案獲取資料
Kotlin Notebook 結合了 Kotlin DataFrame 程式庫,讓您能夠處理非結構化與結構化資料。這種組合提供了將非結構化資料(例如 TXT 檔案中的資料)轉換為結構化資料集的彈性。
對於資料轉換,您可以使用 .add()、.split()、.convert() 以及 .parse() 等方法。此外,此工具集還能獲取與操作來自各種結構化檔案格式的資料,包括 CSV、JSON、XLS、Parquet 和 Apache Arrow。 請參閱 DataFrame 文件以了解所有支援的格式。
在本指南中,您可以透過多個範例學習如何獲取、調整與處理資料。
開始之前
Kotlin Notebook 仰賴 Kotlin Notebook 外掛程式,該外掛程式預設已隨附並啟用於 IntelliJ IDEA 中。
如果 Kotlin Notebook 功能不可用,請確保已啟用該外掛程式。如需更多資訊,請參閱設定環境。
若要進行本教學:
建立一個新的 Kotlin Notebook。
匯入 Kotlin DataFrame:
kotlin%use dataframe
請在執行任何其他程式碼資料格之前,先執行包含
%use dataframe這一行的程式碼資料格,以確保 DataFrame 程式庫及其 API 在筆記本中可用。
獲取資料
若要將檔案中的資料獲取到您的 Kotlin Notebook 中,請使用 DataFrame.read() 函式:
val movies = DataFrame.read("movies.csv")DataFrame.read() 函式會根據檔案副檔名和內容自動偵測輸入格式。
您還可以傳遞額外的引數來控制 DataFrame 程式庫讀取輸入資料的方式。例如,以下程式碼為 CSV 檔案指定了自訂的分隔符號 (;):
val movies = DataFrame.read("movies.csv", delimiter = ';')如需其他檔案格式的全面概覽以及各種讀取函式,請參閱 Kotlin DataFrame 程式庫文件。
顯示資料
一旦您將資料載入筆記本中,就可以將其顯示出來。最簡單的方法是將資料儲存在變數中,然後將其傳回:
val jsonDf = DataFrame.read("jsonFile.json")
jsonDf這段程式碼會將檔案中的資料顯示為互動式表格:

您可以使用此檢視來檢查值、確認欄位名稱,並輕鬆了解資料集的狀態。
檢查資料結構
若要深入了解資料的結構或架構,請對您的 DataFrame 變數套用 .schema() 函式。
例如,執行 jsonDf.schema() 來列出您 JSON 資料集中每個欄位的型別:

使用 Kotlin Notebook,您還可以使用自動補全功能。它讓您能快速存取並操作 DataFrame 的屬性。載入資料後,只需輸入 DataFrame 變數後接一個點號 (.),即可查看可用欄位及其型別的清單。

調整資料
Kotlin DataFrame 提供了各種調整資料集的操作。例如:群組、篩選、更新或新增新欄位。這些函式對於資料分析至關重要,讓您能有效地組織、清理與轉換資料。
例如,讓我們看看 movies.csv 資料集。它在同一個資料格中儲存了電影標題和上映年份。目標是調整此資料集以便於分析:
載入資料
使用
.read()函式將檔案載入到DataFrame中:kotlinval movies = DataFrame.read("movies.csv")新增欄位
若要從
title欄位中提取上映年份,請新增一個新的year欄位:kotlinval moviesWithYear = movies .add("year") { "\\d{4}".toRegex() .findAll(title) .lastOrNull() ?.value ?.toInt() ?: -1 } moviesWithYear更新值
若要從電影標題中移除上映年份,請更新
title欄位:kotlinval moviesTitle = moviesWithYear .update("title") { "\\s*\\(\\d{4}\\)\\s*$".toRegex().replace(title, "") } moviesTitle這段程式碼會將電影標題保留在一個欄位,並將上映年份移至另一個欄位。
篩選資料列
若要專注於特定資料,請使用
.filter()函式。例如,若要僅保留 1986 年之後上映的電影,請執行:kotlinval newMovies = moviesTitle.filter { year >= 1996 } newMovies移除欄位
若要移除不需要的欄位,請使用
.remove()函式:kotlinval refinedMovies = newMovies.remove { movieID } refinedMovies
作為對照,這是調整前的資料集:

調整後的資料集:

如需更多使用案例與詳細範例,請參閱 Kotlin Dataframe 範例。
匯出資料
在 Kotlin Notebook 中調整資料後,您可以輕鬆地匯出處理後的資料。
您可以為此目的利用各種 .write() 函式。它支援儲存為多種格式,包括 CSV、JSON、XLS、XLSX、Apache Arrow,甚至是 HTML 表格。 請參閱 DataFrame 文件以了解所有支援的格式。 這對於分享您的發現、建立報告或讓您的資料可用於進一步分析特別有用。
例如,讓我們將結果儲存為:
使用
.writeJson()函式的 JSON 檔案:kotlinrefinedMovies.writeJson("movies.json")使用
.writeCsv()函式的 CSV 檔案:kotlinrefinedMovies.writeCsv("movies.csv")使用
.writeArrorIPC()和.writeArrorFeather()函式的 Apache Arrow 檔案:kotlinrefinedMovies.writeArrowIPC("movies.arrow") refinedMovies.writeArrowFeather("movies.feather")
您還可以使用 .toStandaloneHTML() 函式在瀏覽器中開啟獨立的 HTML 表格:
refinedMoviesDf
.toStandaloneHTML(DisplayConfiguration(rowsLimit = null))
.openInBrowser()接續步驟
- 使用 Kandy 程式庫探索資料視覺化
- 在使用 Kandy 在 Kotlin Notebook 中進行資料視覺化中尋找有關資料視覺化的更多資訊
- 如需 Kotlin 中可用於資料科學與分析之工具與資源的廣泛概覽,請參閱 Kotlin 與 Java 資料分析程式庫
