Наука о данных

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

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

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

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

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

pip install xlwt openpyxl xlsxwriter xlrd

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

импортировать панд как pd
импортировать numpy как np
dtfrm = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
печать (dtfrm)

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

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

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

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

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.сводная_таблица (фрейм данных, индекс = ["Продукт"])
печать (сводная_таблица)

Следующий результат показан после запуска вышеуказанного исходного кода:

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

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = 'Product', values ​​= 'UnitPrice')
печать (сводная_таблица)

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

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

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

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

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

Пример:

В этом примере мы применили агрегатные функции. Нп.Функция sum () используется для функции "Количество" и np.Функция mean () для функции UnitPrice.

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Категория", "Продукт"], aggfunc = 'Количество': np.sum, 'UnitPrice': np.иметь в виду)
печать (сводная_таблица)

После применения функции агрегирования для различных функций вы получите следующий результат:

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Product'], values ​​= ['UnitPrice'], aggfunc = np.иметь в виду)
печать (сводная_таблица)

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

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Категория', 'Продукт', 'Город'], values ​​= ['UnitPrice', 'Quantity'],
columns = ['Region'], aggfunc = [np.сумма])
печать (сводная_таблица)

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

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

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Категория', 'Продукт', 'Город'], values ​​= ['UnitPrice', 'Quantity'],
columns = ['Регион'], aggfunc = [np.сумма], fill_value = 0)
печать (сводная_таблица)

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

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.сводная_таблица (dataframe, index = 'Product', values ​​= 'UnitPrice', aggfunc = 'sum')
low_price = сводная_таблица [сводная_таблица ['UnitPrice'] < 60]
печать (low_price)

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

импортировать панд как pd
импортировать numpy как np
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["Категория", "Город", "Регион"], values ​​= ["UnitPrice", "Количество"], aggfunc = np.сумма)
pt = pivot_tble.query ('Категория == ["Cookies"]')
печать (пт)

Выход:

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

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

импортировать панд как pd
импортировать numpy как np
импортировать matplotlib.pyplot как plt
dataframe = pd.read_excel ('C: / Пользователи / DELL / Рабочий стол / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.сводная_таблица (фрейм данных, индекс = ["Категория", "Продукт"], значения = ["UnitPrice"])
pivot_tble.сюжет (вид = 'бар');
plt.показывать()

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

Заключение

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

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...