Встречается на собеседованиях • сегодня

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

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

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

text
```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` также способен обрабатывать повторяющиеся значения за счёт агрегации.

text
```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

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы