Преди да проучите осевите таблици в pandas, важно е да разберете какво точно представлява обобщената таблица и как можем да я използваме в нашите проекти за наука за данни.
Пивотна таблица
Обобщената таблица е инструмент за обобщаване на данни, който обикновено се използва в програми за електронни таблици като Microsoft Excel или Google Sheets. Използва се за извличане и анализиране на големи количества данни чрез реорганизиране и извършване на операции за обобщаване, като агрегиране (като сума, средно, преброяване и т.н.), филтриране и групиране на оригиналния набор от данни.
Има четири основни части на обобщената таблица
- Редове: Представлява уникалните стойности от избрано поле в оригиналния набор от данни.
- Колони: Представлява уникалните стойности от друго избрано поле в оригиналния набор от данни и осигурява допълнително групиране и категоризиране на данни
- Стойност: Това са действителните данни, върху които трябва да се извършат операциите за агрегиране/групиране
- Филтри: Позволява да се прилагат условия за филтриране, за да се ограничат данните, показвани в обобщената таблица. Този компонент е много важен, тъй като ни позволява да изберем подмножество от много голям набор от данни (въз основа на предоставените условия) и да извършим лесен и по-бърз анализ на съответните данни.
Пивотна таблица в 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 предоставя ограничен набор от данни за по-лесно приложение, може никога да не сте изпитвали нужда да използвате някакъв инструмент за обобщаване на данни, но това е много важно за проекти на ниво индустрия, където може да имате трилиони точки с данни