从熊猫数据框中绘图

时间:2017-10-25 13:27:18

标签: python pandas matplotlib

给定以下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

如何制作条形图等 enter image description here

使用matplotlib

1 个答案:

答案 0 :(得分: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()

如果第一个或第二个解决方案不起作用,因为time +聚合函数或pivot_table中需要成对重复usernamegroupby

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()