如何根据日期pandas数据框汇总?

时间:2018-05-30 00:04:48

标签: python pandas dataframe matplotlib

我有这个数据框

AppRoutingModule

要按日期汇总df=pd.DataFrame([["2017-01-14",1], ["2017-01-14",30], ["2017-01-16",216], ["2017-02-17",23], ["2017-02-17",2], ["2017-03-19",745], ["2017-03-19",32], ["2017-03-20",11], ["2017-03-20",222], ["2017-03-21",4]],columns=["date","payout_value"]) 我使用:

payout_value

如何在x轴上绘制(条形图)日期,在y轴上绘制汇总的支出总和?

我尝试使用df_daily=df.groupby('date').agg(['sum']) payout_value sum date 2017-01-14 31 2017-01-16 216 2017-02-17 25 2017-03-19 777 2017-03-20 233 2017-03-21 4 方法,但没有' date' df.plot(x='date', y='payout_value',kind="bar")数据框中的列,df_daily给出print(list(df_daily))

3 个答案:

答案 0 :(得分:7)

你快到了,     使用reset_index并按df_daily绘制你的

df_daily=df.groupby('date').agg(['sum']).reset_index()
df_daily.plot(x='date', y='payout_value',kind="bar")
plt.show()

enter image description here

答案 1 :(得分:2)

尝试:

df.groupby('date').agg(['sum']).plot.bar(legend='')
plt.xlabel('date')
plt.ylabel('payout value sum')

enter image description here

答案 2 :(得分:2)

您可以set_indexsum

df.assign(date=pd.to_datetime(df.date)).set_index('date').payout_value.sum(level=0).plot(kind='bar')

enter image description here