我有下表(格式很抱歉):
Date Service Reference Document
2018-05-14 A Null 3542523
2018-05-15 B 01 6234242
2018-05-16 A 09 2342146
2018-05-16 C Null 2342342
我有一个计算值[Calculated]是
Reference.count/Document.count()
我想创建一个与下一个相似的图:
在x轴上我有日期,在y轴上我有计算所得的列,但用代表不同服务的不同行显示。
到目前为止,我有这个:
def calculate(df):
return df.Reference.count() / df.Document.count()
df1 = df.groupby(['Date']).apply(calculate)
但是,如果我尝试将服务添加到groupby中,则无法使用
进行绘制sns.lineplot()
是否有其他方法或更简单的方法将“服务”维度添加到绘图?
谢谢
答案 0 :(得分:1)
使用以下方式按日期和服务汇总数据后:
df1 = df.groupby(['Date', 'Service']).apply(calculate)
然后,重置索引以转换为数据帧(来自一系列)
df1 = df1.reset_index()
然后将其绘制:
sns.lineplot(x='Date', y=0, hue='Service', data=df1)