Python Pandas Pivot on Bins: методы категоризации и агрегирования данных

Чтобы повернуть подборки с помощью библиотеки Python Pandas, вы можете использовать несколько методов в зависимости от ваших конкретных требований. Вот несколько подходов:

  1. pd.cut() и groupby(): вы можете использовать функцию pd.cut()для создания ячеек, а затем объединить ее с groupby()функция для выполнения операции поворота. Этот метод позволяет классифицировать числовые данные по интервалам и агрегировать значения внутри каждого интервала.
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
# Create bins using pd.cut()
bins = [0, 3, 6, 10]
labels = ['Bin 1', 'Bin 2', 'Bin 3']
df['Bins'] = pd.cut(df['Values'], bins=bins, labels=labels)
# Pivot on bins using groupby()
pivot_table = df.groupby('Bins')['Values'].sum().reset_index()
  1. pd.qcut() и Pivot_table(): если вы хотите создать интервалы с одинаковой частотой (квантили), вы можете использовать pd.qcut()в сочетании с pivot_table()функция. Этот метод полезен, если вы хотите разделить данные на ячейки одинакового размера.
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
# Create bins using pd.qcut()
bins = 3
df['Bins'] = pd.qcut(df['Values'], q=bins)
# Pivot on bins using pivot_table()
pivot_table = pd.pivot_table(df, values='Values', index='Bins', aggfunc='sum').reset_index()
  1. pd.cut() и Pivot_table(). Другой подход — напрямую использовать pd.cut()в сочетании с pivot_table(). Этот метод позволяет одновременно создавать интервалы и сводить данные.
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
# Pivot on bins using pd.cut() and pivot_table()
pivot_table = pd.pivot_table(df, values='Values', index=pd.cut(df['Values'], bins=bins, labels=labels), aggfunc='sum').reset_index()

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