【问题标题】:Plotting Pandas GroupBy data绘制 Pandas GroupBy 数据
【发布时间】:2021-12-07 01:43:45
【问题描述】:

我将一个数据集读入Pandas 并使用df_new=df.query("parent=='pr1'") 过滤数据以创建一个新的DataFrame,如下所示:

     child  parent         date     pres  
101   ch05     pr1   2004-06-01  2760.35  
102   ch05     pr1   2004-07-08  2758.83  
103   ch09     pr1   2004-08-04  2759.13  
..     ...     ...          ...           
317   ch12     pr1   2021-03-15  1737.09  
318   ch12     pr1   2021-03-17  1730.98  
183   ch05     pr1   2021-04-30  1777.09  

我正在尝试计算每日平均值,所以尝试了这个:pobs = df.groupby('date')['pres'].mean()。这似乎有效,因为print(pobs) 给出了这样的内容:

date
2004-06-01    2760.35
2004-07-08    2758.83
2004-08-04    2759.13

但是我想使用matplotlib 绘制datepres 以确保但无法分别提取这两个数组。我尝试在这里调整解决方案Plotting pandas groupby,但让自己陷入困境。我怀疑答案是一两行代码,但我找不到它们 - 所有建议都表示赞赏。谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你只需要重置索引

    pobs = df.groupby('date')['pres'].mean().reset_index()
    

    输出:

        date    pres
    0   2004-06-01  2760.35
    1   2004-07-08  2758.83
    2   2004-08-04  2759.13
    

    这样,prob 现在是一个数据框,可以像这样绘制,例如

    import matplotlib.pyplot as plt
    plt.plot(pobs.date,pobs.pres)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 2019-06-12
      • 1970-01-01
      • 2017-08-10
      • 2015-10-29
      • 2020-12-25
      • 2019-02-13
      相关资源
      最近更新 更多