如何用日期(年/月)绘制pandas DataFrame?

时间:2018-08-04 16:51:43

标签: python pandas

我有一个熊猫数据框,其中填充了以下数据:

      Date         val   count
0  2013-01         A        1 
1  2013-01         M        1
2  2013-02         M        2
3  2013-03         B        3
4  2013-03         M        5
5  2014-05         B        1

我是matplotlib的新手,无法确定如何使用Y轴(计数),X轴(日期)绘制此数据,并具有3条独立的曲线,每个val值对应一条。

3 个答案:

答案 0 :(得分:2)

使用 pivot plot A不会出现,因为它只有一个点并且正在隐藏在M的第一点)。您还必须将Date列转换为datetime才能准确显示X轴:

df.Date = pd.to_datetime(df.Date)
df.pivot(index='Date', columns='val', values='count').plot(marker='o')

enter image description here

如果您想将NaN的值显示为零,只需使用 fillna

df.pivot(index='Date', columns='val', values='count').fillna(0).plot(marker='o')

答案 1 :(得分:1)

按值分组,遍历并在同一轴上绘制每条线:

fig, ax = plt.subplots()
for i, g in df.groupby("val"):
    g.plot(kind="line", x="Date", y="count", ax=ax, label=i)

答案 2 :(得分:1)

您可以简单地将日期设置为索引,按组列('A')分组,选择要绘制的列,然后使用SeriesGroupby方法图:

df.set_index('Date').groupby('val')['count'].plot(legend=True)

enter image description here