Создайте отдельные кадры данных с помощью итерации объекта groupby - PullRequest
0 голосов
/ 21 декабря 2018

Глядя, чтобы перебрать столбец региона (4 региона) с помощью group by, а затем запустить кучу сводных таблиц, которые я буду складывать друг на друга и создавать общую строку.Сводные таблицы должны быть запущены во всех 4 регионах, по которым я группируюсь.Как только у меня появятся стержни, мне нужно сложить их друг на друга.

import pandas as pd
import numpy as np

df = pd.DataFrame({'Roll': ['Analyst','doctor','activist','lawyer','writer','manager'], 
                   'Animal': ['cats','dogs','birds','pianos','elephant','dinos'], 
                   'Region': ['EM', 'US', 'US', 'Europe', 'Asia', 'Asia'], 
                   'Year': ['2006', '2010', '2013', '2010', '2002', '2003'], 
                   'Dollar Amount': [10, 20, 30, 40, 50, 60]})

years = ['2001', '2002', '2003', '2004', '2005']    

dfs = {}
for region, df_region in df.groupby('Region'):
    filter = df[df['Roll'].isin(Analyst) & df['Animal'].isin(cats) & df['Year'].isin(years)]
    pivot = pd.pivot_table(filter, index=['Animal'], columns='Year', 
                           values=['Dollar Amount'], aggfunc=np.sum, fill_value=0)

    filter2 = df[df['Roll'].isin(Analyst) & df['Animal'].isin(dogs) & df['Year'].isin(years)]
    pivot2 = pd.pivot_table(filter2, index=['Animal'], columns='Year', 
                            values=['Dollar Amount'], aggfunc=np.sum, fill_value=0)

    Total = pd.concat([pivot1, pivot2])
    Total = Total.append(Total.sum().rename('Analyst'))
    dfs[region] = df_region

All_regions = pd.concat(['df_US', 'df_EM', 'df_Europe', 'df_Asia'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...