2017-02-10 2 views

ответ

1

Я думаю, вам нужно сначала преобразовать столбец dateto_datetime, а затем к year.

Тогда set_index и последний DataFrame.plot.bar:

df.date = pd.to_datetime(df.date).dt.year 
df = df.set_index('date') 
df.index.name= None 
print (df) 
      A   B  C  D 
2010 53936248 53928376 7840 2800 
2011 22936276 53928404 7840 2800 
2012 523763 53928404 7840 2800 

df.plot.bar(rot=0) 

graph

Если палочка участок dates:

import matplotlib.pyplot as plt 
import matplotlib.ticker as ticker 

df.date = pd.to_datetime(df.date) 
df = df.set_index('date') 
df.index.name= None 
print (df) 
        A   B  C  D 
2010-02-17 53936248 53928376 7840 2800 
2011-02-17 22936276 53928404 7840 2800 
2012-02-17 523763 53928404 7840 2800 

ax = df.plot.bar(rot=45) 
ticklabels = df.index.strftime('%Y-%m-%d') 
ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels)) 
plt.show() 

graph1

1

Если предположить, что date уже datetime

df.assign(year=df.date.dt.year) \ 
    .set_index('year').drop('date', 1) \ 
    .rename_axis([None]).plot.bar(rot=0) 

enter image description here

Смежные вопросы