Получение данных из файлов
Библиотека Kotlin DataFrame позволяет работать как со структурированными, так и с неструктурированными данными. Для преобразования данных можно использовать такие методы, как .add(), .split(), .convert() и .parse(). Кроме того, этот набор инструментов позволяет извлекать данные и работать с ними в различных структурированных форматах файлов, включая CSV, JSON, XLS, Parquet и Apache Arrow. Все поддерживаемые форматы перечислены в документации DataFrame.
В этом руководстве на примерах показано, как получать, уточнять и обрабатывать данные.
Перед началом
Чтобы выполнить инструкции этого руководства:
Выберите Файл | Создать | Kotlin Notebook.
-
Импортируйте Kotlin DataFrame:
%use dataframe
Запустите ячейку кода со строкой
%use dataframeперед запуском любых других ячеек, чтобы библиотека DataFrame и её API были доступны в блокноте.
Для выполнения инструкций этого руководства можно также подключить DataFrame как зависимость Gradle или Maven.
Получение данных
Чтобы получить данные из файла, используйте функцию DataFrame.read():
val movies = DataFrame.read("movies.csv")
Функция DataFrame.read() определяет формат входных данных по расширению файла и его содержимому.
Также можно передать дополнительные аргументы, задающие способ чтения входных данных библиотекой DataFrame. Например, следующий код задаёт пользовательский разделитель (;) для CSV-файла:
val movies = DataFrame.read("movies.csv", delimiter = ';')
Отображение данных
Получив данные, их можно отобразить. Самый простой способ — сохранить данные в переменной и вернуть её:
val jsonDf = DataFrame.read("jsonFile.json")
jsonDf
Этот код отображает данные из файла в виде интерактивной таблицы:
С помощью этого представления можно изучать значения, проверять названия столбцов и быстро оценивать состояние набора данных.
Изучение структуры данных
Чтобы получить представление о структуре или схеме данных, вызовите функцию .schema() для переменной DataFrame.
Например, выполните jsonDf.schema(), чтобы вывести тип каждого столбца набора данных JSON:
Можно также воспользоваться функцией автодополнения. Она позволяет быстро обращаться к свойствам DataFrame и работать с ними. Загрузив данные, введите имя переменной DataFrame и точку (.), чтобы увидеть список доступных столбцов и их типы.
Уточнение данных
Kotlin DataFrame предоставляет различные операции для уточнения набора данных. Например, группировка, фильтрация, обновление или добавление новых столбцов. Эти функции необходимы для анализа данных: с их помощью можно эффективно упорядочивать, очищать и преобразовывать данные.
Рассмотрим набор данных movies.csv. В одной ячейке в нём хранятся названия фильмов и годы их выхода. Цель — уточнить этот набор данных, чтобы упростить анализ:
-
Загрузите данные
Загрузите файл в
DataFrameс помощью функции.read():val movies = DataFrame.read("movies.csv") -
Добавьте столбец
Чтобы извлечь год выхода из столбца
title, добавьте новый столбецyear:val moviesWithYear = movies .add("year") { "\\d{4}".toRegex() .findAll(title) .lastOrNull() ?.value ?.toInt() ?: -1 } moviesWithYear -
Обновите значения
Чтобы удалить год выхода из названия фильма, обновите столбец
title:val moviesTitle = moviesWithYear .update("title") { "\\s*\\(\\d{4}\\)\\s*$".toRegex().replace(title, "") } moviesTitleВ результате названия фильмов остаются в одном столбце, а годы выхода перемещаются в другой.
-
Отфильтруйте строки
Чтобы сосредоточиться на определённых данных, используйте функцию
.filter(). Например, чтобы оставить только фильмы, выпущенные после 1986 года, выполните:val newMovies = moviesTitle.filter { year >= 1996 } newMovies -
Удалите столбец
Чтобы удалить ненужный столбец, используйте функцию
.remove():val refinedMovies = newMovies.remove { movieID } refinedMovies
Для сравнения: набор данных до уточнения:
Набор данных после уточнения:
Экспорт данных
После уточнения данные можно легко экспортировать.
Для этого можно использовать различные функции .write(). Поддерживается сохранение в различных форматах, включая CSV, JSON, XLS, XLSX, Apache Arrow и даже HTML-таблицы. Все поддерживаемые форматы перечислены в документации DataFrame. Это особенно полезно для обмена результатами, создания отчётов и предоставления данных для дальнейшего анализа.
Например, сохраним результат в виде:
-
файла JSON с помощью функции
.writeJson():refinedMovies.writeJson("movies.json") -
файла CSV с помощью функции
.writeCsv():refinedMovies.writeCsv("movies.csv") -
файлов Apache Arrow с помощью функций
.writeArrorIPC()и.writeArrorFeather():refinedMovies.writeArrowIPC("movies.arrow") refinedMovies.writeArrowFeather("movies.feather")
Также можно открыть отдельную HTML-таблицу в браузере с помощью функции .toStandaloneHTML():
refinedMoviesDf
.toStandaloneHTML(DisplayConfiguration(rowsLimit = null))
.openInBrowser()
Что дальше
Изучите визуализацию данных с помощью библиотеки Kandy
Дополнительные сведения о визуализации данных см. в разделе Визуализация данных с помощью Kandy
Подробный обзор инструментов и ресурсов для работы с данными и их анализа в Kotlin см. в разделе Библиотеки Kotlin и Java для анализа данных
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/data-analysis-work-with-data-sources.html