Можно ли написать объект сводной таблицы Excel из pandas? - PullRequest
0 голосов
/ 07 августа 2020

Я заменяю большую часть своей рабочей нагрузки Excel на pandas. Мне нужно создать стандартный объект сводной таблицы Excel (с интерактивным пользовательским интерфейсом, чтобы пользователи могли определять фильтры по своему усмотрению). Я не слишком разбираюсь в pandas .pivot_table (), но перед тем, как копаться, хочу знать, возможно ли это. Например, с учетом этого DataFrame:

   Name Birth Year  Favorite Color
George  1987    Red
Maria   1987    Orange
Andrew  1992    Blue
Wyatt   1994    Red
Celeste 1987    Blue
Peter   1992    Blue

Можно ли написать XLSX, как на этом снимке экрана:

Сводная таблица Excel

Заранее спасибо!

1 Ответ

1 голос
/ 07 августа 2020

Пользовательский интерфейс может быть легко построен для сводной таблицы.

import pandas as pd

data = {'name': ['George', 'Maria', 'Andrew', 'Wyatt', 'Celeste', 'Peter'],
        'year': [1987, 1987, 1992, 1994, 1987, 1992],
        'color': ['Red', 'Orange', 'Blue', 'Red', 'Blue', 'Blue']}
df = pd.DataFrame(data)

# Simple interactive UI variable selection:
yr_selected = 'All'
if yr_selected != 'All':
    df = df.loc[df['year'] == yr_selected]
lbl_selected = 'color'

pt = df.pivot_table(index=[lbl_selected], values=['name'], aggfunc='count', margins=True)

print(pt)

Вывод:

        name
color
Blue       3
Orange     1
Red        2
All        6
...