Engee 文档
Notebook

使用表格的基本功能

在本示例中,让我们看看如何在 Engee 环境中使用DataFrames.jl 库处理表格。


创建表

让我们定义一个表格,并在此基础上考虑使用函数。

设置表格的方法之一是从现有矩阵中获取表格。

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

处理字符串和列的函数

例如,要输出表格的第二列,可以用列名 dot 来表示,也可以输出第二列的所有行。下面的代码单元格表示了这两种方法。

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