Divida o DataFrame em um dicionário de grupos de várias colunas
Eu tenho um quadro de dados como este:
df = pd.DataFrame({
'Client':['A','B','C','D','E'],
'Revenue':[100,120,50,40,30],
'FYoQ':['FY','Q','Q','Q','FY'],
'Quarter':[np.nan,1,3,4,np.nan],
'Year':[2017,2016,2015,2017,2016]
})
Como dividir o quadro de dados para obter um quadro de dados do dicionário bidimensional
ds [ano] [trimestre] para cada ano e trimestre.
No momento, sou capaz de fazer um dicionário unidimensional da seguinte maneira:
years=df['Year'].unique().tolist()
mc={elem:pd.DataFrame for elem in years}
for year in years:
mc[year]=df.loc[(df['Year']==year)]
Dessa forma, obtenho um dicionário de dataframe mc [2015], mc [2016] etc.
E então eu novamente tenho que aplicar a mesma coisa a cada um deles.
Eu esperava que houvesse uma modificação do código:
mc={elem:pd.DataFrame for elem in years}
criar um dicionário bidimensional (ou mesmo multidimensional) de uma só vez, permitindo a divisão de dados mais rapidamente.