Поиск по сайту:
Нет, я не бог, Как дерзнул ты бессмертным меня уподобить? (Гомер).

Как создать сводную таблицу в Pandas Python

24.03.2021
Как удалить повторяющиеся строки в Pandas Python

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

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

 

Чтение данных из файла Excel

Мы скачали базу данных по продажам продуктов питания в формате Excel. Перед началом реализации вам необходимо установить некоторые необходимые пакеты для чтения и записи файлов базы данных Excel. Введите следующую команду в разделе терминала редактора pycharm:

pip install xlwt openpyxl xlsxwriter xlrd

Теперь прочтите данные из таблицы Excel. Импортируйте необходимые библиотеки panda и измените путь к вашей базе данных. Затем, запустив следующий код, можно получить данные из файла.

import pandas as pd
import numpy as np
dtfrm = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
print(dtfrm)

Здесь данные считываются из базы данных Excel по продажам продуктов питания и передаются в переменную dataframe.

 

Создайте сводную таблицу с помощью Pandas Python

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

Читать  Абсолютное значение в Python

 

Сводные данные по индексу

Индекс – это функция сводной таблицы, которая позволяет группировать данные в соответствии с требованиями. Здесь мы взяли «Product» в качестве индекса для создания базовой сводной таблицы.

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Product"])
print(pivot_tble)

 

Явно определите столбцы

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

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index='Product', values='UnitPrice')
print(pivot_tble)

Сводные данные с мультииндексом

Данные могут быть сгруппированы на основе более чем одного объекта в качестве индекса. Используя многоиндексный подход, вы можете получить более конкретные результаты для анализа данных. Например, товары относятся к разным категориям. Таким образом, вы можете отобразить индекс «Product» и «Category» с доступными значениями «Quantity» и «UnitPrice» для каждого продукта следующим образом:

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"],values=["UnitPrice", "Quantity"])
print(pivot_tble)

Применение функции агрегирования в сводной таблице

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

Пример:

В этом примере мы применили агрегатные функции. Функция np.sum() используется для функции «Quantity», а функция np.mean() – для функции «UnitPrice».

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"], aggfunc={'Quantity': np.sum,'UnitPrice': np.mean})
print(pivot_tble)

 

Читать  Пузырьковая сортировка

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

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index=['Product'], values=['UnitPrice'], aggfunc=np.mean)
print(pivot_tble)

Различия между значениями и столбцами в сводной таблице

Значения и столбцы являются основным запутывающим моментом в pivot_table. Важно отметить, что столбцы являются необязательными полями, отображая значения результирующей таблицы горизонтально вверху. Функция агрегирования aggfunc применяется к перечисляемому вами полю значений.

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
columns=['Region'],aggfunc=[np.sum])
print(pivot_tble)

Обработка отсутствующих данных в сводной таблице

Вы также можете обработать отсутствующие значения в сводной таблице с помощью параметра fill_value. Это позволяет вам заменить значения NaN некоторым новым значением, которое вы предоставляете для заполнения.

Например, мы удалили все нулевые значения из приведенной выше результирующей таблицы, запустив следующий код и заменив значения NaN на 0 во всей результирующей таблице.

import pandas as pd
import numpy as np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
columns=['Region'],aggfunc=[np.sum], fill_value=0)
print(pivot_tble)

Фильтрация в сводной таблице

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

import pandas as pd
import numpy as 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')
low_price=pivot_tble[pivot_tble['UnitPrice'] < 60]
print(low_price)

Используя другой метод запроса, вы можете фильтровать результаты. Например, например, мы отфильтровали категорию файлов cookie на основе следующих функций:

import pandas as pd
import numpy as 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.sum)
pt=pivot_tble.query('Category == ["Cookies"]')
print(pt)

Визуализируйте данные сводной таблицы

Чтобы визуализировать данные сводной таблицы, выполните следующий метод:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"],values=["UnitPrice"])
pivot_tble.plot(kind='bar');
plt.show()

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

Читать  Как отсортировать массив в Java

 

Вывод

Мы изучили, как вы можете создать сводную таблицу из фрейма данных с помощью Pandas python. Сводная таблица позволяет глубже анализировать наборы данных. Мы видели, как сгенерировать простую сводную таблицу с помощью мультииндекса и применить фильтры к сводным таблицам. Кроме того, мы также показали, как построить данные сводной таблицы и заполнить недостающие данные.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Создание сайтов давно перестало быть прерогативой профессиональных вебмастеров. Появление на…

Спасибо!

Теперь редакторы в курсе.