grouped = df.groupby('col1').apply(lambda g: g.set_index('date')[['amount']
    ].resample('W', how='sum')).unstack(level=0).fillna(0)
grouped.columns = grouped.columns.droplevel()
print(grouped)
grouped.plot(kind='bar')
Pandas: Group by calendar-week, then plot grouped barplots for the real datetime