Загрузка и просмотр
DataFrame можно создать из CSV-текста прямо в программе или загрузить из файла. Для первых примеров удобнее использовать CSV-текст: программа получается полностью самодостаточной, и её можно сразу запустить.
После загрузки обычно нужно быстро проверить таблицу: вывести первые строки, посмотреть типы столбцов, найти числовые признаки и убедиться, что данные прочитались правильно.
CSV-текст в программе
Заголовок раздела «CSV-текст в программе»DataFrame.FromCsvText создаёт таблицу из многострочной строки. Первая строка содержит имена столбцов, остальные строки — данные.
uses MLABC;
begin var df := DataFrame.FromCsvText(''' Имя,Класс,Балл Анна,8А,91 Борис,8Б,76 Вера,8А,84 ''');
df.Print;end.Вывод:
Имя Класс Балл Анна 8А 91Борис 8Б 76 Вера 8А 84В этом примере DataFrame сам создаёт три столбца: Имя, Класс и Балл.
Загрузка из CSV-файла
Заголовок раздела «Загрузка из CSV-файла»Если данные лежат в отдельном файле, используйте DataFrame.FromCsv. Такой вариант удобен для реальных таблиц и учебных наборов данных.
uses MLABC;
begin var df := DataFrame.FromCsv('students.csv');
df.Head(5).Print;end.Head выводит первые строки таблицы. Это удобно, когда файл большой и печатать всю таблицу не нужно. Если количество строк не указано, выводятся первые 10 строк.
Для просмотра последних строк используется Tail:
df.Tail(5).Print;У Tail тоже можно указать количество строк. По умолчанию выводятся последние 10 строк.
Первичный просмотр таблицы
Заголовок раздела «Первичный просмотр таблицы»После загрузки полезно посмотреть не только строки, но и общую информацию о таблице.
uses MLABC;
begin var df := DataFrame.FromCsvText(''' Имя,Возраст,Балл Анна,14,91 Борис,15,76 Вера,14,84 Глеб,15,68 ''');
df.PrintInfo; df.Describe.Print;end.PrintInfo показывает состав таблицы: столбцы, их типы и служебную информацию.
Describe строит краткое статистическое описание числовых столбцов: минимум, максимум, среднее значение и другие характеристики.
Автоматическое распознавание типов
Заголовок раздела «Автоматическое распознавание типов»При загрузке CSV DataFrame может автоматически определить типы столбцов: целые числа, вещественные числа, строки, логические значения и даты.
uses MLABC;
begin var df := DataFrame.FromCsvText(''' Дата,Товар,Количество,Цена 2024-09-01,Хлеб,2,45.50 2024-09-02,Молоко,1,72.90 2024-09-03,Яблоки,3,58.25 ''');
df.PrintInfo;end.Здесь Дата будет распознана как дата и время, Количество — как целочисленный столбец, а Цена — как вещественный.
Явная схема столбцов
Заголовок раздела «Явная схема столбцов»Иногда типы лучше задать вручную. Например, если в CSV записаны цены 120, 150, 90, автоматическое распознавание может считать столбец целочисленным, хотя по смыслу это вещественная цена.
uses MLABC;
begin var text := ''' Товар,Цена Хлеб,45 Молоко,72 Яблоки,58 ''';
var df := DataFrame.FromCsvText( text, columnTypes := Dict('Цена' to ctFloat) );
df.Print;end.Явная схема не обязана описывать все столбцы. В примере явно задана только Цена, а остальные столбцы загружаются обычным способом.
Категориальные признаки
Заголовок раздела «Категориальные признаки»Столбец может хранить не просто текст или числа, а категории: пол, отдел, город, цвет, тип товара. Такие столбцы важно отличать от обычных числовых величин, потому что дальше они часто кодируются перед обучением модели.
Категориальные столбцы можно указать сразу при создании DataFrame.
uses MLABC;
begin var df := DataFrame.FromCsvText(''' Имя,Пол,Отдел,Опыт Анна,Ж,Аналитика,3 Борис,М,Разработка,5 Вера,Ж,Разработка,2 ''', categoricalColumns := ['Пол', 'Отдел']);
df.PrintInfo;end.Здесь Пол и Отдел отмечаются как категориальные столбцы. Это не меняет сами значения в таблице, но сохраняет важную информацию о смысле столбцов для дальнейшей обработки данных.
Типы и категориальные признаки можно задать вместе:
uses MLABC;
begin var df := DataFrame.FromCsvText(''' Имя,Пол,Отдел,Опыт,Зарплата Анна,Ж,Аналитика,3,90000 Борис,М,Разработка,5,120000 Вера,Ж,Разработка,2,85000 ''', columnTypes := Dict('Зарплата' to ColumnType.ctFloat), categoricalColumns := ['Пол', 'Отдел']);
df.PrintInfo;end.Что важно помнить
Заголовок раздела «Что важно помнить»- Для учебных примеров удобно использовать
DataFrame.FromCsvText. - Для реальных файлов используется
DataFrame.FromCsv. HeadиTailпомогают быстро посмотреть большую таблицу.PrintInfoпоказывает структуру таблицы и типы столбцов.- Типы можно распознавать автоматически или задавать явно через
columnTypes. - Категориальные признаки стоит отмечать при загрузке через
categoricalColumns.