Графическая сводная таблица Pandas, перекрестная таблица

анализ данных pandas
Графическая сводная таблица Pandas, перекрестная таблица

Графическая сводная таблица Pandas pivot_table

Всем привет, меня зовут Питер~

Наконец-то начал писать расширенный контент Pandas. Я считаю, что многие люди должны знать сводную таблицу и часто делают ее в Excel, чтобы реализовать группировку и сводную статистику данных. В Pandas мы называем это pivot_table.

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

Давайте сравним методы реализации сводных таблиц в Excel и Pandas на конкретных примерах.

сводная таблица эксель

Ниже приведена сводная таблица, сделанная с данными о потреблении в таблице Excel (скриншоты частичных данных) Мы подсчитываем количество потребления и чаевые для разных полов и разных дат, а также отображаем общие данные.

Итак, как это сделать, если вы используете панд? ? ?

параметр

Сводная таблица, используемая в пандах:pandas.pivot_table

pd.pivot_table(data,  # 制作透视表的数据
               values=None,  # 值
               index=None,  # 行索引
               columns=None,  # 列属性
               aggfunc='mean',   # 使用的函数,默认是均值
               fill_value=None,  # 缺失值填充
               margins=False, # 是否显示总计
               dropna=True,   # 缺失值处理
               margins_name='All', # 总计显示为All
               observed=False,  
               sort=True  # 排序功能  版本1.3.0才有
              )

Наиболее важными параметрами являются: значения, индекс, столбцы, aggfunce и даже поля, имя_маржи.

Прикрепите официальный адрес учебного сайта:pandas.друзья попали на него.org/pandas-docs…

сводная таблица

индекс параметра

index представляет индекс строки, указанный нами для создания сводной таблицы

1. Одноуровневый индекс

2. Многоуровневый индекс строки

значения параметров

При использовании параметра index выше мы не указывали параметр values, панды будут вычислять все числовые данные в сводной таблице по умолчанию, а теперь укажем данные, рассчитанные по параметру:

  • Со значениями будут отображаться только те данные, которые мы укажем
  • Без значений отображаются сводные результаты всех числовых данных.

столбцы параметров

columns — это параметр, отображающий информацию об атрибутах столбца.

Что, если мы поместим день в параметр index?

эквивалентно:Преобразование вышеуказанного формата широкой таблицы в следующий формат длинной таблицы

Затем сравните две разные формы:

параметр aggfunc

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

Мы противопоставляем случай усреднения среднего по умолчанию случаю суммирования:

Связь между средним и суммой:

Мы можем указать несколько функций в функции aggfunc, поместив эти функции в один список:

  • Сумма: np.sum
  • Найдите среднее: среднее
  • Найдите число: размер

Давайте посмотрим на другой пример:

Параметры поля, margins_name

Роль этих двух параметров заключается в суммировании сгруппированных данных в сводной таблице. Следует отметить, что установка параметра margins_name вступит в силу только в том случае, если margins=True.

Измените имя, отображаемое в сводке:

Агрегированные данные также отображаются, если есть поля столбца:

перекрестная таблица ()

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

параметр

Объяснение каждого параметра в кросс-таблице почти такое же, как и в сводной таблице:

pandas.crosstab(index, # 行索引,必须是数组结构数据,或者Series,或者是二者的列表形式
                columns, # 列字段;数据要求同上
                values=None,  # 待透视的数据
                rownames=None,  # 行列名字
                colnames=None,  
                aggfunc=None,  # 透视的函数
                margins=False,  # 汇总及名称设置
                margins_name='All', 
                dropna=True, # 舍弃缺失值
                normalize=False  # 数据归一化;可以是布尔值、all、index、columns、或者{0,1}
               )

Пояснение к последнему параметру: как выбрать критерий нормализации

  • Если передано «все» или «Истина», будут нормализованы все значения: используйте все, чтобы нормализовать все числовые данные.
  • Если передан «индекс», он будет нормализоваться по каждой строке: использовать индекс, нормализовать только по строкам
  • Если переданы «столбцы», они будут нормализованы по каждому столбцу: использовать столбцы, нормализовать только по столбцам
  • Если margins равно True, также будут нормализованы значения поля: Если margins=True, общее значение также будет участвовать в нормализации.

использование параметра

Конечно, иногда сводные таблицы и перекрестные таблицы могут делать то же самое:

реализация groupby

На самом деле суть сводной таблицы или кросс-таблицы заключается в группировании сводных статистических результатов, мы также можем использовать groupby для достижения:

1. Статистика первой группы

2. Вращение оси

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

групповое сравнение и сводная таблица

Наконец, давайте используем пример для сравнения groupby и сводной таблицы:

меморандум

Это очень популярный рисунок в Интернете, который иллюстрирует функцию сводной таблицы Pandas.Он использует простые данные, чтобы четко объяснить значение каждого параметра функции сводной_таблицы, сохраните его для будущего использования!

网络图