diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df01.pas b/InstallerSamples/MachineLearning/DataFrameABC/df01.pas new file mode 100644 index 000000000..ec728a97a --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df01.pas @@ -0,0 +1,13 @@ +// Загрузка и просмотр данных +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df01a.pas b/InstallerSamples/MachineLearning/DataFrameABC/df01a.pas new file mode 100644 index 000000000..42ea7ed4d --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df01a.pas @@ -0,0 +1,7 @@ +// Загрузка данных из CSV-файла +uses DataFrameABC; + +begin + var df := DataFrame.FromCsv('people.csv'); + df.Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df02.pas b/InstallerSamples/MachineLearning/DataFrameABC/df02.pas new file mode 100644 index 000000000..f6bdc4129 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df02.pas @@ -0,0 +1,13 @@ +// Выбор столбцов (Select) +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.Select(['name', 'score']).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df03.pas b/InstallerSamples/MachineLearning/DataFrameABC/df03.pas new file mode 100644 index 000000000..42f17bb42 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df03.pas @@ -0,0 +1,13 @@ +// Переименование столбцов (Rename) +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.Rename('score', 'exam_score').Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df04.pas b/InstallerSamples/MachineLearning/DataFrameABC/df04.pas new file mode 100644 index 000000000..4352df28c --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df04.pas @@ -0,0 +1,13 @@ +// Удаление столбцов (Drop) +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.Drop(['score']).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df05.pas b/InstallerSamples/MachineLearning/DataFrameABC/df05.pas new file mode 100644 index 000000000..07b7f799d --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df05.pas @@ -0,0 +1,13 @@ +// Простая фильтрация +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.Filter(row -> row.Int('age') >= 21).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df06.pas b/InstallerSamples/MachineLearning/DataFrameABC/df06.pas new file mode 100644 index 000000000..a28193833 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df06.pas @@ -0,0 +1,16 @@ +// Фильтрация с NA +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.IsValid('score')).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df07.pas b/InstallerSamples/MachineLearning/DataFrameABC/df07.pas new file mode 100644 index 000000000..d5f11d132 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df07.pas @@ -0,0 +1,16 @@ +// Новый числовой столбец +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.WithColumnBool('passed', row -> row.Int('score') >= 80).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df08.pas b/InstallerSamples/MachineLearning/DataFrameABC/df08.pas new file mode 100644 index 000000000..5a80d5838 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df08.pas @@ -0,0 +1,16 @@ +// Обработка ошибок (NA) +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.WithColumnFloat('normalized', row -> row.Float('score') / 100).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df09.pas b/InstallerSamples/MachineLearning/DataFrameABC/df09.pas new file mode 100644 index 000000000..d6f64f846 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df09.pas @@ -0,0 +1,18 @@ +// Простые статистики +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.Min('score').Println; + df.Mean('score').Println; + df.Max('score').Println; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df10.pas b/InstallerSamples/MachineLearning/DataFrameABC/df10.pas new file mode 100644 index 000000000..951ccb6ad --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df10.pas @@ -0,0 +1,17 @@ +// Describe одного столбца +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 + '''); + + var d := df.Describe('score'); + Print(d.Count,d.Min,d.Max,d.Mean,d.Std); +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df11.pas b/InstallerSamples/MachineLearning/DataFrameABC/df11.pas new file mode 100644 index 000000000..c91fb23be --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df11.pas @@ -0,0 +1,16 @@ +// Describe всех числовых столбцов +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.Describe.PrintLines; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df12.pas b/InstallerSamples/MachineLearning/DataFrameABC/df12.pas new file mode 100644 index 000000000..6778bbedd --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df12.pas @@ -0,0 +1,16 @@ +// GroupBy + Count +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.GroupBy('age').Count.Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df13.pas b/InstallerSamples/MachineLearning/DataFrameABC/df13.pas new file mode 100644 index 000000000..a59312960 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df13.pas @@ -0,0 +1,16 @@ +// GroupBy + Mean +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.GroupBy('age').Mean('score').Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df14.pas b/InstallerSamples/MachineLearning/DataFrameABC/df14.pas new file mode 100644 index 000000000..87a780a8c --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df14.pas @@ -0,0 +1,16 @@ +// GroupBy + Describe +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.GroupBy('age').Describe('score').Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df15.pas b/InstallerSamples/MachineLearning/DataFrameABC/df15.pas new file mode 100644 index 000000000..d8f09acad --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df15.pas @@ -0,0 +1,20 @@ +// Inner Join +uses DataFrameABC; + +begin + var students := DataFrame.FromCsvText(''' + id,name + 1,Alice + 2,Bob + 3,Charlie + '''); + + var scores := DataFrame.FromCsvText(''' + id,score + 1,85 + 2,90 + 4,70 + '''); + + students.Join(scores, 'id').Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df16.pas b/InstallerSamples/MachineLearning/DataFrameABC/df16.pas new file mode 100644 index 000000000..3e53a2ade --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df16.pas @@ -0,0 +1,20 @@ +// Left Join +uses DataFrameABC; + +begin + var students := DataFrame.FromCsvText(''' + id,name + 1,Alice + 2,Bob + 3,Charlie + '''); + + var scores := DataFrame.FromCsvText(''' + id,score + 1,85 + 2,90 + 4,70 + '''); + + students.Join(scores, 'id', jkLeft).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df17.pas b/InstallerSamples/MachineLearning/DataFrameABC/df17.pas new file mode 100644 index 000000000..aa6d27875 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df17.pas @@ -0,0 +1,20 @@ +// Full Join +uses DataFrameABC; + +begin + var students := DataFrame.FromCsvText(''' + id,name + 1,Alice + 2,Bob + 3,Charlie + '''); + + var scores := DataFrame.FromCsvText(''' + id,score + 1,85 + 2,90 + 4,70 + '''); + + students.Join(scores, 'id', jkFull).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df18.pas b/InstallerSamples/MachineLearning/DataFrameABC/df18.pas new file mode 100644 index 000000000..818113d82 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df18.pas @@ -0,0 +1,13 @@ +// Сортировка +uses DataFrameABC; + +begin + var df := DataFrame.FromCsvText(''' + name,age,score + Alice,20,85 + Bob,22,90 + Charlie,21,78 + '''); + + df.SortBy('score', descending := True).Print; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df19.pas b/InstallerSamples/MachineLearning/DataFrameABC/df19.pas new file mode 100644 index 000000000..02de4714b --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df19.pas @@ -0,0 +1,16 @@ +// Просмотр больших данных +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.PrintPreview(3); +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df20.pas b/InstallerSamples/MachineLearning/DataFrameABC/df20.pas new file mode 100644 index 000000000..90a188879 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df20.pas @@ -0,0 +1,21 @@ +// Полный аналитический сценарий +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(r -> r.IsValid('score')) + .SortBy('age', descending := True) + .GroupBy('age') + .Mean('score') + .PrintPreview(3); +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/df21.pas b/InstallerSamples/MachineLearning/DataFrameABC/df21.pas new file mode 100644 index 000000000..2a8fa4a88 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/df21.pas @@ -0,0 +1,18 @@ +// Сортировка по нескольким полям +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(r -> r.IsValid('score')) + .SortBy(['age','score'],[True,True]) + .Println; +end. \ No newline at end of file diff --git a/InstallerSamples/MachineLearning/DataFrameABC/people.csv b/InstallerSamples/MachineLearning/DataFrameABC/people.csv new file mode 100644 index 000000000..5cc40c626 --- /dev/null +++ b/InstallerSamples/MachineLearning/DataFrameABC/people.csv @@ -0,0 +1,4 @@ +name,age,score +Alice,20,85 +Bob,22,90 +Charlie,21,78 \ No newline at end of file