Наука за данните

Как да създадете обобщена таблица в Pandas Python

Как да създадете обобщена таблица в Pandas Python
В python на panda, Pivot таблицата включва функции за суми, преброяване или агрегиране, получени от таблица с данни. Функциите за агрегиране могат да се използват за различни характеристики или стойности. Осева таблица ни позволява да обобщим данните на таблицата, групирани по различни стойности, включително категорични стойности на колони.

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

Прочетете данни от файла на Excel

Изтеглихме база данни на Excel за продажби на храни. Преди да започнете внедряването, трябва да инсталирате някои необходими пакети за четене и запис на файловете на базата данни на Excel. Въведете следната команда в терминалната секция на редактора на pycharm:

pip инсталирайте xlwt openpyxl xlsxwriter xlrd

Сега прочетете данни от листа на Excel. Импортирайте необходимите библиотеки на панда и променете пътя на вашата база данни. След това чрез стартиране на следния код данните могат да бъдат извлечени от файла.

импортирайте панди като pd
импортиране на numpy като np
dtfrm = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
печат (dtfrm)

Тук данните се четат от базата данни на excel за продажби на храни и се предават в променливата dataframe.

Създайте обобщена таблица с помощта на Pandas Python

По-долу създадохме проста обобщена таблица, използвайки базата данни за продажбите на храни. За създаването на обобщена таблица са необходими два параметъра. Първият е данните, които сме прехвърлили в рамката, а другият е индекс.

Осигуряване на данни върху индекс

Индексът е характеристиката на обобщена таблица, която ви позволява да групирате данните си според изискванията. Тук взехме „Продукт“ като индекс за създаване на основна обобщена таблица.

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Product"])
печат (pivot_tble)

Следният резултат се показва след стартиране на горния изходен код:

Изрично дефинирайте колони

За повече анализ на вашите данни изрично дефинирайте имената на колоните с индекса. Например искаме да покажем в резултата единствената UnitPrice на всеки продукт. За тази цел добавете параметъра стойности във вашата обобщена таблица. Следният код ви дава същия резултат:

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = 'Product', values ​​= 'UnitPrice')
печат (pivot_tble)

Осеви данни с мултииндекс

Данните могат да бъдат групирани въз основа на повече от една характеристика като индекс. Използвайки многоиндексния подход, можете да получите по-конкретни резултати за анализ на данните. Например продуктите попадат в различни категории. И така, можете да покажете индекса „Продукт“ и „Категория“ с наличните „Количество“ и „UnitPrice“ за всеки продукт, както следва:

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.обобщена таблица (кадър с данни, индекс = ["Категория", "Продукт"], стойности = ["UnitPrice", "Количество"])
печат (pivot_tble)

Прилагане на функцията за агрегиране в обобщена таблица

В обобщена таблица aggfunc може да се прилага за различни стойности на характеристиките. Резултантната таблица е обобщение на данните за характеристиките. Обобщаващата функция се отнася за данните за вашата група в pivot_table. По подразбиране агрегатната функция е np.означава(). Но въз основа на потребителските изисквания могат да се прилагат различни обобщени функции за различни функции на данните.

Пример:

В този пример сме приложили обобщени функции. Np.функцията sum () се използва за функция „Количество“ и np.функция mean () за функцията „UnitPrice“.

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Category", "Product"], aggfunc = 'Количество': np.сума, 'UnitPrice': np.означава)
печат (pivot_tble)

След като приложите функцията за агрегиране за различни функции, ще получите следния изход:

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

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Product'], values ​​= ['UnitPrice'], aggfunc = np.означава)
печат (pivot_tble)

Различно между Стойности срещу. Колони в обобщена таблица

Стойностите и колоните са основната объркваща точка в обобщената таблица. Важно е да се отбележи, че колоните са незадължителни полета, показващи резултантните стойности на таблицата хоризонтално отгоре. Функцията за агрегиране aggfunc се прилага за полето със стойности, което сте изброили.

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], values ​​= ['UnitPrice', 'Quantity'],
колони = ['Регион'], aggfunc = [np.сума])
печат (pivot_tble)

Обработка на липсващи данни в обобщена таблица

Можете също така да се справите с липсващите стойности в обобщената таблица, като използвате 'fill_value' Параметър. Това ви позволява да замените NaN стойностите с някаква нова стойност, която предоставяте за попълване.

Например премахнахме всички нулеви стойности от горната резултантна таблица, като стартирахме следния код и заменихме NaN стойностите с 0 в цялата получена таблица.

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], values ​​= ['UnitPrice', 'Quantity'],
колони = ['Регион'], aggfunc = [np.сума], fill_value = 0)
печат (pivot_tble)

Филтриране в обобщена таблица

След като резултатът бъде генериран, можете да приложите филтъра, като използвате стандартната функция на рамката за данни. Да вземем пример. Филтрирайте тези продукти, чиято UnitPrice е по-малка от 60. Показва тези продукти, чиято цена е под 60.

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = 'Product', values ​​= 'UnitPrice', aggfunc = 'sum')
ниска_цена = pivot_tble [pivot_tble ['UnitPrice'] < 60]
печат (ниска цена)

Използвайки друг метод за заявка, можете да филтрирате резултатите. Например например филтрирахме категорията „бисквитки“ въз основа на следните характеристики:

импортирайте панди като pd
импортиране на numpy като np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["Category", "City", "Region"], values ​​= ["UnitPrice", "Quantity"], aggfunc = np.сума)
pt = pivot_tble.заявка ('Категория == ["Бисквитки"]')
печат (pt)

Изход:

Визуализирайте данните на обобщената таблица

За да визуализирате данните на обобщената таблица, следвайте следния метод:

импортирайте панди като pd
импортиране на numpy като np
импортиране на matplotlib.pyplot като plt
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.обобщена таблица (кадър от данни, индекс = ["Категория", "Продукт"], стойности = ["UnitPrice"])
pivot_tble.парцел (вид = 'бар');
plt.покажи ()

В горната визуализация показахме единичната цена на различните продукти заедно с категориите.

Заключение

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

Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...