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