Вы можете передать любую функцию Python параметру aggfunc pandas.pivot_table , из документации:
aggfunc: функция, список функций, dict, значение по умолчанию. Среднее
Например, для первого случая вы можете выполнить:
Настройка
import numpy as np
import pandas as pd
data = pd.DataFrame(
{'Name': ['bob', 'alice', 'mary', 'tom', 'bob', 'alice', 'mary', 'tom'], 'Grades': [10, 9, 8, 8, 7, 5, 6, 8]})
Код
result = pd.pivot_table(data, index=['Name'], values=['Grades'], aggfunc=lambda x: np.max(x) - np.min(x))
print(result)
Выход
Grades
Name
alice 4
bob 3
mary 2
tom 0