Агрегации DataFrame Pandas: методы и примеры суммирования данных

«Агрегации Pandas DataFrame» относятся к процессу суммирования или вычисления статистики по данным, хранящимся в Pandas DataFrame. Вот некоторые распространенные методы выполнения агрегирования DataFrame в Python, а также примеры кода:

  1. groupby: этот метод группирует данные в DataFrame на основе одного или нескольких столбцов и позволяет выполнять агрегирование для каждой группы. Например, вы можете вычислить среднее числовое значение столбца для каждой группы.
import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'A', 'B', 'B', 'A'],
        'Value': [10, 15, 20, 25, 30]}
df = pd.DataFrame(data)
# Group by 'Category' and calculate the mean of 'Value'
result = df.groupby('Category')['Value'].mean()
print(result)
  1. agg: этот метод позволяет применять несколько функций агрегирования к одному или нескольким столбцам в DataFrame. Вы можете использовать встроенные функции, такие как sum, mean, min, max, или определить свои собственные функции..
# Calculate the sum, mean, and maximum of 'Value' for each group
result = df.groupby('Category')['Value'].agg(['sum', 'mean', 'max'])
print(result)
  1. pivot_table: этот метод создает сводную таблицу на основе одного или нескольких столбцов, что позволяет суммировать данные путем агрегирования значений по различным критериям.
# Create a pivot table to calculate the mean of 'Value' for each 'Category'
result = df.pivot_table(index='Category', values='Value', aggfunc='mean')
print(result)
  1. apply: этот метод применяет пользовательскую функцию к каждой строке или столбцу DataFrame и возвращает новую серию или DataFrame. Этот метод можно использовать для вычисления агрегатов на основе пользовательской логики.
# Define a custom function to calculate the sum of 'Value' for each row
def sum_values(row):
    return row['Value'] + row['Value']
# Apply the custom function to each row
result = df.apply(sum_values, axis=1)
print(result)
  1. transform: этот метод применяет функцию к каждой группе в DataFrame и возвращает новую серию или DataFrame той же формы, что и исходная. Обычно он используется для расчета групповой статистики с сохранением исходной структуры DataFrame.
# Calculate the z-score of 'Value' for each group
def zscore(x):
    return (x - x.mean()) / x.std()
df['Z-Score'] = df.groupby('Category')['Value'].transform(zscore)
print(df)