如何绘制给定日期时间的项目比例或计数?

时间:2018-06-05 00:57:44

标签: python pandas matplotlib seaborn

我有以下pandas数据帧:

year       | id
---------------
2001-08-10 | 1
2002-08-31 | 1
2003-08-29 | 1
2006-06-21 | 3
2002-03-27 | 3
2003-07-14 | 1
2004-06-15 | 2
2003-08-14 | 2
2003-07-29 | 2
2011-02-21 | 3
2011-01-02 | 4
2012-04-29 | 2
2013-05-29 | 1

我想绘制每年ID的比例?我试着:

df.groupby([df2["year"].dt.year]).count().plot(kind="barh")

但是,我真的不认为这显示了每年ID的比例。此外,我有很多id(从1到60)。因此,这是绘制大量日期时间和ID的正确方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用crosstab

df.year=pd.to_datetime(df.year)
pd.crosstab(df.year.dt.year,df.id).plot(kind='bar',stacked=True)

enter image description here