【问题标题】:Plotting from pandas data frame从熊猫数据框中绘图
【发布时间】:2018-04-06 14:53:51
【问题描述】:

给定如下pandas数据框,命名为work(时间列为索引)

    time    username    counter
    9.0     Person.A        5
    10.0    Person.A        4
    11.0    Person.A        5
    11.0    Person.B        3
    11.0    Person.C        5
    12.0    Person.A        3
    12.0    Person.B        5
    12.0    Person.C        2

如何制作条形图,例如

使用matplotlib?

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    您可以使用DataFrame.plot.bar,但需要先通过unstackpivot 重塑数据:

    df.set_index(['time','username'])['counter'].unstack(fill_value=0).plot.bar()
    

    或者:

    df.pivot(index='time',columns='username', values='counter').plot.bar()
    

    如果第一个或第二个解决方案不起作用,因为timeusername 成对重复是groupby + 聚合函数或pivot_table 中的必要聚合:

    df.groupby(['time','username'])['counter'].sum().unstack(fill_value=0).plot.bar()
    
    df.pivot_table(index='time',columns='username', values='counter', aggfunc='sum').plot.bar()
    

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2023-03-28
      • 1970-01-01
      • 2018-03-19
      • 2021-09-26
      相关资源
      最近更新 更多