Преди да проучите осевите таблици в pandas, важно е да разберете какво точно представлява обобщената таблица и как можем да я използваме в нашите проекти за наука за данни.

Пивотна таблица

Обобщената таблица е инструмент за обобщаване на данни, който обикновено се използва в програми за електронни таблици като Microsoft Excel или Google Sheets. Използва се за извличане и анализиране на големи количества данни чрез реорганизиране и извършване на операции за обобщаване, като агрегиране (като сума, средно, преброяване и т.н.), филтриране и групиране на оригиналния набор от данни.

Има четири основни части на обобщената таблица

  1. Редове: Представлява уникалните стойности от избрано поле в оригиналния набор от данни.
  2. Колони: Представлява уникалните стойности от друго избрано поле в оригиналния набор от данни и осигурява допълнително групиране и категоризиране на данни
  3. Стойност: Това са действителните данни, върху които трябва да се извършат операциите за агрегиране/групиране
  4. Филтри: Позволява да се прилагат условия за филтриране, за да се ограничат данните, показвани в обобщената таблица. Този компонент е много важен, тъй като ни позволява да изберем подмножество от много голям набор от данни (въз основа на предоставените условия) и да извършим лесен и по-бърз анализ на съответните данни.

Пивотна таблица в Pandas

Нека започнем, като обсъдим защо наистина трябва да използваме обобщена таблица, докато работим с pandas, кога трябва да използваме това и след това да преминем към най-важния раздел на този блог, т.е. как да използваме обобщени таблици в панди.

Защо да използваме осеви таблици в pandas?

Когато работите с голям набор от данни, изпълнението на EDA задачи се превръща в огромна болка и изглежда изключително дразнещо, тъй като са необходими вечности, за да се изпълни дори една функция за агрегиране или чертане.
Да имате устройство с много висока мощност на обработка (такива с квантовата възможностите на компютъра) определено биха ни позволили да игнорираме тези времеви и ресурсни ограничения, но докато не бъдат разработени, трябва да използваме осеви таблици, когато работим с голям набор от данни.

Другата причина, поради която аз лично обичам да използвам този инструмент и препоръчвам на всеки друг амбициозен учен по данни, е фактът, че по-малък и по-свързан (към зависимата променлива) поднабор дава много по-добър анализ на тенденции и модели и позволява сбити и четливи сюжети.

Всъщност той се оказва много мощен инструмент за проучване на данни, докладване и вземане на решения в различни области като бизнес, финанси, продажби и изследвания.

Въпреки че обобщените таблици обикновено се препоръчват пред рамки с данни за задачи за агрегиране и анализ поради по-добра ефективност (в аспекти на времето и паметта), може да няма голямо предимство за малки набори от данни

Как да използвате осеви таблици в pandas?

синтаксис:-

pandas.pivot_table(data, values=None, index=None, columns=None,
 aggfunc='mean', fill_value=None, margins=False, dropna=True,
 margins_name='All', observed=False, sort=True)

Често използвани параметри:-

данни:DataFrame
стойности:списъчни или скаларни, по избор (Колона или колони за обобщаване .)
индекс:колона, Grouper, масив или списък с предишните
колони:колона , Grouper, масив или списък на предишния
aggfunc:функция, списък с функции, dict, numpy.mean по подразбиране

Приложение:-

>>> df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
...                          "bar", "bar", "bar", "bar"],
...                    "B": ["one", "one", "one", "two", "two",
...                          "one", "one", "two", "two"],
...                    "C": ["small", "large", "large", "small",
...                          "small", "large", "small", "small",
...                          "large"],
...                    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
...                    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})
>>> df
     A    B      C  D  E
0  foo  one  small  1  2
1  foo  one  large  2  4
2  foo  one  large  2  5
3  foo  two  small  3  5
4  foo  two  small  3  6
5  bar  one  large  4  6
6  bar  one  small  5  8
7  bar  two  small  6  9
8  bar  two  large  7  9
>>> table = pd.pivot_table(df, values='D', index=['A', 'B'],
...                        columns=['C'], aggfunc=np.sum)
>>> table
C        large  small
A   B
bar one    4.0    5.0
    two    7.0    6.0
foo one    4.0    1.0
    two    NaN    6.0

За подробна информация относно използването можете да проверите:
https://pandas.pydata.org/docs/reference/api/pandas.pivot_table.html

Забележка за kagglers

тъй като kaggle предоставя ограничен набор от данни за по-лесно приложение, може никога да не сте изпитвали нужда да използвате някакъв инструмент за обобщаване на данни, но това е много важно за проекти на ниво индустрия, където може да имате трилиони точки с данни