Документация Engee
Notebook

Базовые функции работы с таблицами

В данном примере рассмотрим работу с таблицами с помощью библиотеки DataFrames.jl в среде Engee.


Создание таблицы

Зададим таблицу и на ее основе рассмотрим работу с функциями.

Один из способов задания - это получение ее из существующей матрицы.

In [ ]:
x = rand(3,4) # Задаем матрицу 3х4
Out[0]:
3×4 Matrix{Float64}:
 0.926038   0.804963   0.534224    0.79081
 0.0455585  0.247521   0.00657984  0.944393
 0.560838   0.0451912  0.272253    0.225811
In [ ]:
# Подключим библиотеку для работы
using DataFrames

y = DataFrame( x, ["A", "B", "C", "D"] )
Out[0]:

3 rows × 4 columns

ABCD
Float64Float64Float64Float64
10.9260380.8049630.5342240.79081
20.04555850.2475210.006579840.944393
30.5608380.04519120.2722530.225811

Можно задать названия столбцам автоматически, указав вторым параметром ключевое слово :auto.

In [ ]:
y1 = DataFrame( x, :auto )
Out[0]:

3 rows × 4 columns

x1x2x3x4
Float64Float64Float64Float64
10.9260380.8049630.5342240.79081
20.04555850.2475210.006579840.944393
30.5608380.04519120.2722530.225811

Функции для работы со строками и стобцами

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

In [ ]:
y.B # Обращение через название столбца
Out[0]:
3-element Vector{Float64}:
 0.8049630878241182
 0.24752121054936527
 0.04519118103988562
In [ ]:
y[:,2] # Выводим все строки 2-го столбца
Out[0]:
3-element Vector{Float64}:
 0.8049630878241182
 0.24752121054936527
 0.04519118103988562

Можно также вывести все столбцы, кроме одного, например С.

In [ ]:
select(y[:,:], Not("C"))
Out[0]:

3 rows × 3 columns

ABD
Float64Float64Float64
10.00.00.0
20.04555850.2475210.944393
30.5608380.04519120.225811

Чтобы переименовать столбцы, существует функция rename(). Первым аргументом функции является таблица, а вторым - новые наименования столбцов.

In [ ]:
rename!(y1, ["A", "B", "C", "D"])
Out[0]:

3 rows × 4 columns

ABCD
Float64Float64Float64Float64
10.9260380.8049630.5342240.79081
20.04555850.2475210.006579840.944393
30.5608380.04519120.2722530.225811

Значения столбцов можно сортировать с помощью функции sort().

In [ ]:
sort!(y1.C) # Отсортировали значения в столбце С и записали в исходную таблицу результат
Out[0]:
3-element Vector{Float64}:
 0.006579837672216482
 0.2722532183791443
 0.534224047073746

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

In [ ]:
y1.F = 3 * (y1.B + y1.C) # Запишем в новый столбец результат суммы значений столбцов А и В, уможенной на 3
y1
Out[0]:

3 rows × 5 columns

ABCDF
Float64Float64Float64Float64Float64
10.9260380.8049630.006579840.790812.43463
20.04555850.2475210.2722530.9443931.55932
30.5608380.04519120.5342240.2258111.73825

Таким образом, мы рассмотрели основные базовые функции работы с таблицами при помощи библиотеки DataFrames.jl. Больше подобной информации по работе с таблицами можно найти в разделе DataFrames.jl.