2016-12-02 3 views
0

Dans l'extrait suivant, je veux faire la transformation inplace le format sans avoir à garder une autre variable temporaire (df)Définir le format DateTimeIndex lors de l'utilisation TimeGroupper

df = other_df.set_index('datetime_created').groupby(pd.TimeGrouper("M")).aggregate({...complex dict...}) 
df.index = df.index.format(formatter=lambda x: x.strftime('%b %Y')) 
df.plot.bar(sharex=True, stacked=True) 
+1

En premier lieu, la plus grande question: Pourquoi? Il n'y a pas de honte à utiliser une variable temporaire. – cwallenpoole

+0

Lorsque je fais du prototypage et du traçage à Jupyter, je préfère travailler avec des immutables – Fotis

Répondre

0

Je suppose que vous pouvez simplement formater l'axe après avoir tracé? Un exemple:

df = pd.DataFrame(np.random.rand(10,2), 
       index=pd.date_range('2005-01-01', freq='M', periods=10)) 
ax = df.plot(kind='bar', sharex=True, stacked=True) 
ax.set_xticklabels([x.strftime('%b %Y') for x in df.index]) 
plt.show() 

Result graph