Matplotlib / Seaborn的计算值(熊猫数据框)

时间:2018-08-12 22:01:24

标签: python pandas seaborn

我有下表(格式很抱歉):

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

我想创建一个与下一个相似的图:

enter image description here

在x轴上我有日期,在y轴上我有计算所得的列,但用代表不同服务的不同行显示。

到目前为止,我有这个:

def calculate(df):
    return df.Reference.count() / df.Document.count()

df1 = df.groupby(['Date']).apply(calculate)

但是,如果我尝试将服务添加到groupby中,则无法使用

进行绘制
sns.lineplot()

是否有其他方法或更简单的方法将“服务”维度添加到绘图?

谢谢

1 个答案:

答案 0 :(得分:1)

使用以下方式按日期和服务汇总数据后:

df1 = df.groupby(['Date', 'Service']).apply(calculate)

然后,重置索引以转换为数据帧(来自一系列)

df1 = df1.reset_index()

然后将其绘制:

sns.lineplot(x='Date', y=0, hue='Service', data=df1)