Как исследовать наборы данных в Go

7
технологии 18.webp

Последнее обновление 05.01.2023 — Василий Иванов

Чтобы проанализировать набор данных, вам сначала нужно понять данные. Иногда у вас может не быть предварительных знаний о наборе данных, что не позволяет вам извлечь из него максимальную пользу. Как аналитик данных, вы можете использовать исследовательский анализ данных (EDA), чтобы получить представление о своем наборе данных перед углубленным анализом.

Исследовательский анализ данных (EDA) исследует набор данных, чтобы получить содержательную информацию. Процесс выполнения EDA включает запрос информации о структуре и содержании набора данных.

Установка пакета Gota

Пакет Gota — самый популярный для анализа данных в Go; это как пакет Python Pandas, но для Go. Пакет Gota содержит множество методов для анализа наборов данных и чтения форматов JSON, CSV и HTML.

По теме:  iPhone против Android: что предлагает больше конфиденциальности?

Запустите эту команду на своем терминале в каталоге, где вы инициализировали файл модуля Go:

go get -u github.com/go-gota/gota

Команда установит Gota в локальный каталог, чтобы вы могли импортировать пакет для его использования.

Как и Pandas, Gota поддерживает операции с сериями и кадрами данных. В пакете Gota есть два подпакета: серия и пакет данных. Вы можете импортировать один или оба, в зависимости от ваших потребностей.

import (
"github.com/go-gota/gota/series"
"github.com/go-gota/gota/dataframe"
)

Чтение набора данных с помощью пакета Gota

Вы можете использовать любой файл CSV, который вам нравится, но в следующих примерах показаны результаты из набора данных Kaggle, содержащие данные о ценах на ноутбуки.

Gota позволяет читать форматы файлов CSV, JSON и HTML для создания фреймов данных с использованием методов ReadCSV, ReadJSON и ReadHTML. Вот как вы загружаете файл CSV в объект фрейма данных:

file, err := os.Open("/path/to/csv-file.csv")

if err != nil {
fmt.Println("file open error")
}

dataFrame := dataframe.ReadCSV(file)
fmt.Println(dataFrame)

Вы можете использовать метод Open пакета os, чтобы открыть CSV-файл. Метод ReadCSV считывает объект файла и возвращает объект фрейма данных.

Когда вы печатаете этот объект, вывод имеет табличный формат. Вы можете дополнительно манипулировать объектом dataframe, используя различные методы, которые предоставляет Gota.

Объект будет печатать только некоторые столбцы, если в наборе данных больше заданного значения.

Получение измерения набора данных

Размеры фрейма данных — это количество содержащихся в нем строк и столбцов. Вы можете получить эти размеры, используя метод Dims объекта dataframe.

var rows, columns = dataFrame.Dims()

Замените одну из переменных символом подчеркивания, чтобы получить только другое измерение. Вы также можете запросить количество строк и столбцов по отдельности, используя методы Nrow и Ncol.

var rows = dataFrame.Nrow()
var columns = dataFrame.Ncol()

Получение типов данных столбцов

Вам нужно знать составные типы данных в столбцах набора данных, чтобы анализировать его. Вы можете получить их, используя метод Types вашего объекта dataframe:

var types = dataFrame.Types()
fmt.Println(types)

Метод Types возвращает срез, содержащий типы данных столбца:

Получение имен столбцов

Вам понадобятся имена столбцов, чтобы выбрать определенные столбцы для операций. Вы можете использовать метод Names для их извлечения.

var columnNames := dataFrame.Names()
fmt.Println(columnNames)

Метод Names возвращает фрагмент имен столбцов.

Проверка пропущенных значений

У вас может быть набор данных, содержащий нулевые или нечисловые значения. Вы можете проверить такие значения, используя методы HasNaN и IsNaN объекта серии:

aCol := dataFrame.Col("display_size")
var hasNull = aCol.HasNaN()
var isNotNumber = aCol.IsNaN()

HasNan проверяет, содержит ли столбец нулевые элементы. IsNaN возвращает часть логических значений, представляющих, является ли каждое значение в столбце числом.

Выполнение описательного статистического анализа

Описательный статистический анализ помогает понять распределение числовых столбцов. Используя метод Describe, вы можете создать описательный статистический анализ вашего набора данных:

description := dataFrame.Describe()
fmt.Println(description)

Метод Describe возвращает такие показатели, как среднее значение, стандартное отклонение и максимальные значения столбцов в наборе данных. Он суммирует их в табличном формате.

Вы также можете быть конкретным и сосредоточиться на столбцах и метриках, выбрав конкретный столбец, а затем запросив нужную метрику. Сначала вы должны получить ряд, представляющий конкретный столбец, а затем использовать его методы следующим образом:

aCol := dataFrame.Col("display_size")
var mean = aCol.Mean()
var median = aCol.Median()
var minimum = aCol.Min()
var standardDeviation = aCol.StdDev()
var maximum = aCol.Max()
var quantiles25 = aCol.Quantile(25.0)

Эти методы отражают результаты описательного статистического анализа, который выполняет Describe.

Извлечение элементов в столбце

Одна из последних задач, которую вам нужно выполнить, — это проверить значения в столбце для общего обзора. Вы можете использовать метод Records для просмотра значений столбца.

aCol := dataFrame.Col("brand")
fmt.Println(aCol.Records())

Этот метод возвращает фрагмент строк, содержащих значения в выбранном столбце:

Экспорт Gota Dataframe в файл

Если вы решите пойти дальше и использовать пакет Gota для полного анализа данных, вам потребуется сохранять данные в файлах. Вы можете использовать методы WriteCSV и WriteJSON фрейма данных для экспорта файлов. Методы принимают файл, который вы создадите с помощью метода Create пакета os.

Вот как вы можете экспортировать фрейм данных с помощью пакета Gota.

dataFrame := dataframe.ReadCSV(file)
outputFile, err := os.Create("output.csv")

if err != nil {
log.Fatal(err)
}

err = dataFrame.WriteCSV(outputFile)

if err != nil {
log.Fatalln("There was an error writing the dataframe contents to the file")
}

Переменная dataFrame является представлением фрейма данных. Когда вы используете метод Create пакета os, он создает новый пустой файл с указанным именем и возвращает файл. Метод WriteCSV принимает экземпляр файла и возвращает ошибку или ноль, если ошибки нет.

Исследовательский анализ данных важен

Понимание данных и наборов данных необходимо для аналитиков данных и специалистов по машинному обучению. Это критически важная операция в их рабочем цикле, и исследовательский анализ данных — один из методов, которые они используют для достижения этой цели.

В пакете Gota есть еще кое-что. Вы можете использовать его для различных функций обработки данных так же, как вы используете библиотеку Python Pandas для анализа данных. Однако Gota не поддерживает столько функций, сколько Pandas.