【问题标题】:How to plot aggregated by date pandas dataframe如何绘制按日期聚合的熊猫数据框
【发布时间】:2018-11-08 17:08:54
【问题描述】:

我有这个数据框

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

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

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

我尝试使用df.plot(x='date', y='payout_value',kind="bar") 方法,但df_daily 数据框中没有“日期”列,print(list(df_daily)) 给出[('payout_value', 'sum')]

【问题讨论】:

标签: python pandas dataframe matplotlib


【解决方案1】:

你快到了, 使用 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()

【讨论】:

    【解决方案2】:

    试试:

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

    【讨论】:

      【解决方案3】:

      你可以set_indexsum

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

      【讨论】:

        【解决方案4】:

        我能写的最简单的代码是:

        import matplotlib.pyplot as plt
        import numpy as np
        import pandas as pd
        
        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"])
        
        df.groupby('date').agg('sum').plot(kind='bar', y='payout_value')
        plt.show()
        

        【讨论】:

          猜你喜欢
          • 2020-01-14
          • 2019-08-02
          • 2022-01-21
          • 2018-02-10
          • 1970-01-01
          • 2017-05-16
          • 2013-01-08
          • 1970-01-01
          • 2021-05-03
          相关资源
          最近更新 更多