В чем разница между пивот и пивоттэйбл

Функции `pivot` и `pivot_table` обе предназначены для реорганизации и сводки данных, но они используются в разных сценариях и имеют некоторые ключевые отличия.

Метод `pivot`
Используется для преобразования данных из длинного формата в широкий. Он создаёт новый DataFrame, где один или несколько столбцов используются в качестве индексов, один столбец используется для столбцов новой таблицы, и один столбец для значений новой таблицы. Основное ограничение `pivot` заключается в том, что комбинация индекса и столбцов должна быть уникальной, иначе метод вызовет ошибку.

```python
import pandas as pd

data = pd.DataFrame({
    'date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02'],
    'variable': ['A', 'B', 'A', 'B'],
    'value': [1, 2, 3, 4]
})

# Преобразование в широкий формат
pivot_df = data.pivot(index='date', columns='variable', values='value')
print(pivot_df)
```

В этом примере данные переформатируются так, что каждая дата становится индексом, а переменные 'A' и 'B' становятся столбцами.

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

```python
import pandas as pd

data = pd.DataFrame({
    'date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02'],
    'variable': ['A', 'A', 'B', 'B'],
    'value': [1, 2, 3, 4]
})

# Создание сводной таблицы
pivot_table_df = data.pivot_table(index='date', columns='variable', values='value', aggfunc='sum')
print(pivot_table_df)
```

В этом примере `pivot_table` суммирует значения, позволяя обрабатывать неуникальные комбинации индекса и столбцов.

Основные различия

  • Уникальность данных: `pivot` требует уникальных пар индекс/столбец и выдаст ошибку в случае дубликатов. `pivot_table` может агрегировать дублирующиеся данные, используя функцию агрегации.
  • Гибкость: `pivot_table` предлагает дополнительные параметры, такие как `aggfunc`, которые позволяют более гибко обрабатывать данные.

Используйте `pivot`, когда данные уже в уникальном формате по каждой паре индекс/столбцы и вы просто хотите изменить форму данных. Используйте `pivot_table`, когда вам нужно агрегировать дублирующиеся данные или применить сложные функции агрегирования для создания сводной таблицы.

May 22, 2024, easyoffer