pascalabcnet/InstallerSamples/WhatsNew/3_11_1/DataFrameABC1.pas

41 lines
1.9 KiB
ObjectPascal
Raw Normal View History

{ 3.11.1. Новый стандартный модуль для работы с датасетами
Возможности DataFrame:
Постолбцовое хранение данных (column-store) для высокой производительности
Типизированные столбцы: int, float, string, bool с поддержкой NA
Cursor API для эффективного построчного обхода без лишних аллокаций
Фильтрация строк с пользовательским предикатом (Filter)
Изменение схемы таблицы: Select, Drop, Rename
Добавление вычисляемых столбцов: WithColumn*
Группировка данных и агрегаты (GroupBy)
Соединение таблиц: Inner / Left / Full Join (один и несколько ключей)
Описательная статистика: Count, Mean, Std, Min, Max, Describe
Загрузка данных из CSV и многострочного CSV-текста
Удобный вывод больших таблиц с предпросмотром (Print / PrintPreview)
Семантика операций:
Select / Drop / Rename view (без копирования данных)
Filter / Join / Sort / WithColumn materialize (создаются новые массивы)
Count считает только валидные (non-NA) значения
}
2026-02-03 10:18:06 +03:00
uses DataFrameABC;
begin
var df := DataFrame.FromCsvText('''
name,age,score
Alice,20,85
Bob,22,90
Charlie,21,78
Bob,22,90
Clara,,78
Kat,21,NA
''');
df.Filter(row -> row.Int('age') > 20).Print;
Println;
df.GroupBy('age').Mean('score').Print;
Println;
2026-02-03 10:18:06 +03:00
var stat := df.Describe('score');
Println($'score: count={stat.Count}, min={stat.Min}, max={stat.Max}, mean={stat.Mean}, std={stat.Std.Round(3)}');
end.