J'ai un dataframe comme ceci:Fractionnement dataframe par de multiples dimensions avec le dictionnaire 2D automatiquement nommé dataframes
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]
})
Comment puis-je diviser la trame de données pour obtenir un 2 dataframe dictionnaire dimensions
ds [année] [trimestre ] pour chaque année et chaque trimestre.
En ce moment, je suis capable de faire un dictionnaire 1 dimensions comme suit:
years=df['Year'].unique().tolist()
mc={elem:pd.DataFrame for elem in years}
for year in years:
mc[year]=df.loc[(df['Year']==year)]
De cette façon, j'obtenir un dictionnaire de dataframe mc [2015], mc [2016], etc.
Et puis je à nouveau devoir appliquer la même chose à chacun d'eux.
J'espérais qu'il y aurait une modification du code:
mc={elem:pd.DataFrame for elem in years}
pour créer un 2 dimensions (ou même dictionnaire multi-dimensionnelle) à la fois, ce qui permet la séparation des données plus rapides. Vous pouvez définir un multi-index en utilisant df.set_index
, suivi d'un appel df.groupby
Vous devriez envisager de marquer un de nos réponses comme acceptées si elles ont aidé. –