Преобразование совокупности данных, или Обработка групп данных.
- 22.01.23 г.
- 9772225665000    23002


В предыдущих статьях Раздела говорилось о том, что с данными осуществляются определенные действия с целью получения новых знаний, определений, свойств, метаданных и т.п. Одним из этапов действий для достижения указанных и других целей является работа с совокупностями данных и их отдельными группами, для чего необходимо осуществить группирование данных. Это утверждение в целом очевидно, однако оно далеко не однозначное, поскольку, как показывает анализ научной литературы, в настоящее время в силу усложнения задач и существенного развития программирования само понятие «группирование» требует различения как непосредственного, так и в соответствии с условиями конкретно решаемой задачи. Но ни оно само, ни его факторы в науках до сих пор не изучены, поэтому их исследование было осуществлено в современной диалектике – в диалектическом программировании.


А. «Группирование данных» – многогранное понятие.

Во-первых, могут подразумеваться в общем-то очевидные групповые преобразования данных, не изменяющие их самих, но по-новому их организующие в целях их новой идентификации или совершения определенных процедур подготовки данных к обработке, например, в целях вычисления агрегированного значения. (Как было указано в статье «Агрегация и группирование», агрегация как вычисление и агрегация как группирование – это принципиально разные действия.) Речь может идти об изменении порядка следования данных, о разбиении на группы и т.п.
    Однако следует различать групповые преобразования данных, осуществляемые в науках и в диалектике, которые зависят от многих факторов, в том числе от значений понятий «различие» и «различение» (по существу, в науках эти понятия… не различены).
    Во-вторых, возможны преобразования данных в целях получения подмножества данных, обладающего определенной частной характеристикой.
    В-третьих, возможны преобразования данных или их групп, изменяющие их, например, исключение выбросов или замена пустых значений на средние (см. «Выявление и исправление ошибок в данных»).
    При этом указанные (и другие) виды группирования данных могут существенно различаться и быть достаточно сложными: классификация, кластеризация и т.п. В таком случае уже нельзя вести речь только о предобработке данных, так как имеется понимание того, что группирование данных может быть связано и с их предварительной подготовкой и с их содержательной обработкой; при этом становятся очевидными некоторые положения содержаний и характеристики некоторых видов обработки данных, причем которые можно понимать как этапы обработки данных (их перечень может быть приведен и обсужден отдельно).

Такое положение дел, с одной стороны, понятно и требует изучения для лучшей и более эффективной организации вычислительных процессов (началу обсуждения чего и посвящена настоящая статья), а, с другой стороны, подтверждает ранее сделанный нами вывод о рефлективности, системности и непрерывности этапов и процедур обработки данных с учетом их конкретной содержательности и различия, что приводит к выявлению у информационных технологий характеристик, новых для наук, отчасти уже указанных в предыдущих статьях (их перечень может быть приведен и обсужден отдельно).


Б. В данной статье речь пойдет лишь об одном отдельном виде группирования данных (полный перечень видов может быть приведен и обсужден отдельно) – о формальном групповом преобразовании совокупности данных, точнее о соответствующих методах, которые обладают рядом требующихся для наших исследований характеристик.

Для проведения рассуждения из нескольких установленных в диалектическом программировании групп методов была выбрана специфическая, но наиболее известная и понятная совокупность методов: это методы библиотеки pandas, методы которой хорошо известны и подробно рассмотрены в многочисленной литературе. Поэтому мы не будем останавливаться на их описании и на рассмотрении их многочисленных параметров. Нам нужно будет акцентировать и потом обобщить в системном порядке некоторые моменты и аспекты (см. «Особенность исследований ИТ») в целях обозначения опорных точек и векторов формирования новых инструментов информационных технологий и порождения новых инструментов, обладающих характеристиками исследуемой предметной области. Обозначаемые моменты и аспекты (их полный перечень может быть приведен и обсужден отдельно) мы не будем отдельным образом выделять и обсуждать (они и так могут быть идентифицированы и осмыслены любым читателем), так как целью статьи является демонстрация подхода, обусловливающего их акцентирование – даже просто их акцентирование, хотя потом они будут обсуждены с целью выявления их свойств, существенных для новых информационных технологий и для применения в них диалектических инструментов.

Б1. Методы группировки данных.

Рассмотрение методов группировки данных начнем с метода groupby.
    Создание groupby было вызвано необходимостью вычислять те или иные агрегированные значения для групп данных или подмножеств данных (например, столбец в таблице).
    Для groupby в статье «Агрегация и группирование» были рассмотрены методы агрегирования, так что, по крайней мере, для него уже имеются общие представления об агрегировании данных, следовательно, о группировании данных.
    Метод groupby реализует группирование данных путем разделения данных и выделения их определенной части из всего набора данных на основе заданных критериев (определенных параметров).
    Фактически метод groupby заменяет стандартные числовые индексы на значения выбираемого столбца, становящегося индексным.
    Для группирования данных путем применения groupby необходимо выполнить ряд условий:
– разделение данных на совокупности по некоторым критериям,
– применение методов агрегирования к каждой совокупности,
– объединение результатов в предзаданную структуру данных.
    Метод groupby можно комбинировать с одним или несколькими методами агрегирования.
    Как уже отмечалось, существует три способа их вызова:
– список методов для применения к одному или нескольким столбцам данных,
– использование словаря,
– именованное агрегирование.
    Можно осуществлять несколько агрегаций по столбцам.
    Можно передавать несколько столбцов в качестве аргументов.
    Можно отображать значения, принадлежащие определенной категории данных.

Метод pivot_table позволяет преобразовать данные в сводную таблицу.
    Сводная таблица – это инструмент для обобщения данных и сведения их в формат, удобный для их анализа.
    Метод pivot_table автоматически обобщает данные, группируя их значения, и возвращает измененный набор данных, упорядоченный по заданным значениям индекса на основе значений столбцов.
    Иными словами, можно получить детальное разбиение значений параметров по выбранному признаку и методам агрегирования в зависимости от детализируемых индексов. Глубина детализации может быть любой.
    Обычно указываются следующие аргументы: index (индекс), columns (столбцы), values (значения). Большинство аргументов pivot_table могут принимать несколько значений в качестве элементов списка.

Таблица кросс-табуляции – это перекрестная таблица нескольких факторов. Она создается при помощи метода crosstab, который может показать частоту, с которой появляются определенные группы данных.
    Кросс-табуляция (перекрестная классификация) – это процесс объединения таблиц в одну так, чтобы каждая ячейка в построенной таблице представлялась единственной комбинацией значений кросс-табулированных переменных. Таким образом, кросс-табуляция показывает совместное распределение двух или более величин с помощью таблицы сопряжённости признаков.
    crosstab имеет преимущества по сравнению с pivot_table:
– создаваемая таблица кросс-табуляции может показать частоту, с которой появляются определенные группы данных,
– итоговые значения могут быть нормализованы в целях отображения данных в виде процента,
– возможна передача нескольких столбцов таблицы данных,
– имеется возможность формирования промежуточных итогов для каждой строки и каждого столбца таблицы данных,
– можно сформировать процентное соотношение данных отдельно для столбцов и строк.

Акцентированные аспекты обработки данных потом (с учетом выводов) будут обобщены в системном порядке, обусловливая ряд системных аспектов обработки данных; их можно будет обсудить отдельно.

Б2. Методы объединения (присоединения) данных.

Перед рассмотрением методов объединения данных акцентируем один момент, характерный для них.
    В информационных технологиях существует четыре основных способа объединения данных (таблиц): внутренний, внешний, правый и левый, или пересечение, объединение, присоединение справа (к левой таблице) или слева (к правой таблице): «inner», «outer», «right», «left». Они объединяют столбцы, причем если есть общие столбцы (с одинаковым названием), то происходит их переименование путем использования суффикса.
    В диалектическом программировании – в силу нового понимания данных и не учтенных в науках вариантов – способов объединения данных больше.

Метод join является наиболее простым методом объединения данных (таблиц).
    Он соединяет все столбцы двух таблиц в соответствии с четырьмя основными способами объединения совокупностей данных.
    Можно осуществлять присоединение столбцов по следующим правилам:
– «один к одному»,
– «несколько к одному»,
– «несколько к нескольким».

Метод merge объединяет данные из двух таблиц с общими столбцами, но в отличие от join происходит выборочное объединение.
    Объединение происходит по выбранному столбцу – фактически приставление имеющихся данных: merge применяют к таблице, к которой присоединяют другую.
    Указанный метод объединения данных так же, как и предыдущий, работает со столбцами, но позволяет более гибко настроить построчное выравнивание.
    Для применения merge можно использовать ключевые колонки, на основе которых может происходить объединение: они могут быть выявлены автоматически, но лучше указывать названия столбцов (параметры left_on и right_on).
    Имеется три способа организации объединения и соответственно построчного выравнивания:
– первый способ основывается на использовании столбца, который должен быть общим в обеих совокупностях данных,
– второй способ позволяет объединить две таблицы, используя два разных столбца,
– третий способ – объединение по индексам.
    При указании параметра inner объединяются только те значения, которые можно найти в обеих таблицах, outer – вместо отсутствующего значения ставится пропуск (NaN), left – берутся все значения из левой таблицы, а из правой использует только те значения, которые есть в левой...
    Обычно новый набор данных создается из пересечения двух имеющихся.

Метод concat, или конкатенация, по сравнению с join и merge, которые по умолчанию работают со столбцами, является более гибким, так как позволяет комбинировать совокупности данных как по строкам, так и по столбцам. В одном случае вторая таблица будет присоединена к первой справа, в другом – снизу.
    Однако большая гибкость связана с тем, что любые несоответствующие данные отбрасываются (т.е. значения NaN не используются).
    Метод concat применим в ситуациях, когда имеются два набора данных с одинаковыми столбцами, которые нужно скомбинировать.
    Метод concat не имеет возможности переименования строк или столбцов.

Относительно этих трех методов следует отметить следующее.
    С одной стороны, они имеют много общего, так что следует понимать, когда и в каких целях применять каждый из них.
    С другой стороны, при использовании разных методов объединения совокупностей данных следует учитывать особенности, отличающие одни методы от других, например, такие
– объединение совокупностей данных возможно за счет игнорирования индексов,
– объединение совокупностей данных возможно за счет применения групповых ключей,
– одни методы изменяют совокупности данных, другие – возвращают новые,
– одни методы являются методами набора данных (т.е. их можно использовать как статические методы), другие – общими методами экземпляра используемой библиотеки (хотя также могут быть доступны в качестве методов экземпляра).
    Иными словами, имеются особенности методов, определяемые обработкой данных.

Указанные методы имеют свои специфические аспекты обработки данных, которые будут обобщены в системном порядке потом (с учетом выводов), обусловливая ряд системных аспектов обработки данных; их также можно будет обсудить отдельно.

Б3. Другие методы, часто используемые при группировании и объединении данных.

Укажем некоторые методы, которые дополняют указанные выше и упрощают работу с ними (ценность указываемых методов в том, что они позволяют обозначить ряд дополнительных опорных точек и аспектов векторов формирования новых инструментов информационных технологий).

Метод append добавляет строки одного набора данных в конец другого. Возвращается новый набор данных. При этом столбцы, не входящие в исходный набор, добавляются как новые, а новые ячейки заполняются значениями NaN.

Метод assign добавляет новые столбцы в набор данных, возвращая новый объект с новыми столбцами, добавленными к исходным.

Методы stack и unstack предназначены для работы с многоуровневыми таблицами.
    Метод stack добавляет новый уровень к индексу.
    Метод unstack исключает уровень и добавляет его к столбцам. Эта метод на практике используется чаще. Можно использовать groupby, а затем unstack, чтобы получить те же результаты, что и при использовании crosstab.

Метод sort_values применяется для сортировки данных в порядке возрастания, но используя параметр ascending=False, можно реализовать убывание.

Фильтрация осуществляется различными методами, суть которых в выделении подмножества данных, удовлетворяющих одному или нескольким условиям отбора.
    Она заключается в выборе конкретных строк путем указания
– значения,
– номера строки или диапазона среза,
– условия для значений из определенного столбца.
    Фильтрация не меняет степень детализации оставшихся данных.
    При фильтрации порядок оставшихся записей не изменяется.

Метод fillna заменяет значения NaN в наборе данных на заданное, например, «0» или «unknown».

Б4. Новые методы.

Однако методы аналитики данных недостаточны, по крайней мере, для диалектически понимаемых данных и их обработки (например, обычные методы не могут реализовать преобразование для-себя, см. «Т: оператор "для себя»). Поэтому в диалектическом программировании были созданы новые методы, о которых будет сказано в ряде ближайших статей при рассмотрении выводов к обсуждениям предобработки данных.

Б5. Кроме указанных выше следует обозначить некоторые аспекты, которые относятся к системности методов группирования данных.

Обозначенное выше групповое преобразование совокупности данных сводится практически к выделению по заданному параметру одной или более групп данных, значения которых агрегируются посредством одного или более способов агрегации.
    Хотя это утверждение выглядит простым концептуально, но по существу (не в смысле реализации методов) оно отражает характеристики группирования и агрегации данных.

Основными операциями группирования данных являются следующие:
– комбинирование данных и их совокупностей,
– дополнение данных,
– изменение данных.

Группирование данных связано с их содержательной обработкой и их особыми свойствами: рефлективность, системность и непрерывность этапов и процедур обработки данных.


В. Следует обозначить некоторые выводы.

Можно сделать системный вывод о том, что методы группирования и структурирования данных
– составляют отдельную группу методов в гносеологическом смысле (не в прикладном), что соответствует специфической атрибутивности методологии обработки данных,
– цельны (в науках нет понимания этого),
– системны.

При этом анализ указанных выше методов группового преобразования совокупности данных позволяет сделать вывод о том, что каждый из них сам может рассматриваться как совокупность конкретных функций (этот термин используется по аналогии с функциями агрегирования), причем качественно различных: функций группирования (например, индексация) и функций агрегирования (например, среднее), а также возможно использование функций других классов (их полный перечень может быть приведен и обсужден отдельно). Однако в информационных технологиях указанное положение даже не рассматривается, и дело не в его реализации (думается, что современные программисты легко справляться с этой нетривиальной задачей), а в его смысле – в новом понимания существа и применения методов, обусловливающем программное обеспечение нового вида.

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

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

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


Г. Приведенные и другие положения (их полный перечень может быть приведен и обсужден отдельно) подтверждают идею о возможности нового рассмотрения
– совокупности методов информационных технологий (в данном случае речь идет не про данные, что и составляет новизну и особенность идеи),
– группирования и структурирования методов информационных технологий,
– применения методов информационных технологий в системе.

Однако идея о возможности группирования и структурирования, а также системного применения методов информационных технологий не может быть положена ими, так как не показывает внешнюю к ней гносеологическую особенность группирования (системы) методов.
    Необходим еще один фактор, который является общим по отношению к методам и их совокупностям, для понимания чего нужно выявить их различение (отдельные аспекты, черты, свойства, характеристики рассматриваемых предметов, положений и вопросов, о чем говорилось в статье «Особенность исследований ИТ»), выходящее за алгоритмические и обычные методологические рамки. (Выявлению сути обозначенных различений и их аспектов посвящены последующие статьи настоящего Раздела о содержательной обработке данных.)

Хотя в целом, как нам думается, многие уже поняли, какая идея труда Гегеля «Наука логики» будет использоваться при исследовании указанных сейчас (и ранее) факторов и признаков (кстати, она в своем узком, случайном и абстрактном формате реализована в одних из самых популярных информационных технологий, но этого ученые и специалисты не замечают).

 

Дискуссии и конференции. Методы.