Python 多行按类型打印并随时间添加标签

Python 多行按类型打印并随时间添加标签,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我有以下数据集 Date Type Label 2020-03-20 A 1 2020-03-20 A 0 2020-03-19 B 1 2020-03-17 A 1 2020-03-15 C 0 2020-03-19 A 0 20

我有以下数据集

Date              Type        Label
2020-03-20         A            1
2020-03-20         A            0
2020-03-19         B            1
2020-03-17         A            1
2020-03-15         C            0
2020-03-19         A            0
2020-03-20         D            1
2020-03-20         A            1
我感兴趣的是创建一个具有多行的图形,每种
类型一行,通过时间(
Date
)绘制,只选择那些标签为1的obs

我试过了

df.pivot(index='Date', columns='Type', values='y')
但它说:

ValueError:索引包含重复的条目,无法重塑

有没有关于如何创建这样的多线图的想法?

  • 标签的第一个过滤器。等式(1)
  • 现在还不清楚你想策划什么,所以我提供了两个
  • 您需要处理的事实是,2020-03-20 a有一个副本
    • 第一个情节是通过计数来实现的
    • 第二次按
      drop\u duplicates()打印

import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, figsize=[10,6])

# count over time
(df.loc[df.Label.eq(1),].groupby(["Date","Type"]).agg({"Type":"count"})
 .unstack(1).droplevel(0,axis=1)
 .fillna(method="ffill")
 .plot(ax=ax[0], kind="line")
)

# binary exist / not exist
(df.loc[df.Label.eq(1),["Date","Type"]]
 .drop_duplicates()
 .assign(vals=1)
 .pivot(index="Date", columns="Type", values="vals").fillna(0)
 .plot(ax=ax[1], kind="line")
)