Pandas 从数据帧打印出现次数(条件选择)

Pandas 从数据帧打印出现次数(条件选择),pandas,matplotlib,ipython-notebook,Pandas,Matplotlib,Ipython Notebook,我有一个三列的数据框。1) 其中一个包含时间戳,2)第二个包含错误级别(级别1、级别2和级别3),第三个包含错误类别(类别1、类别2和类别3) 我想知道在某一天里,某一级别和类别的错误发生了多少次。例如,对于每天,我想计算类别1的级别1的错误发生次数,并用X轴上的日期和Y轴上的发生次数绘制此数据。如果您能使用pandas和matplotlib提供答案,我将不胜感激 Time Level Category 2000-12-29 00:10:00

我有一个三列的数据框。1) 其中一个包含时间戳,2)第二个包含错误级别(级别1、级别2和级别3),第三个包含错误类别(类别1、类别2和类别3)

我想知道在某一天里,某一级别和类别的错误发生了多少次。例如,对于每天,我想计算类别1的级别1的错误发生次数,并用X轴上的日期和Y轴上的发生次数绘制此数据。如果您能使用pandas和matplotlib提供答案,我将不胜感激

Time                    Level       Category
2000-12-29 00:10:00     Level 1     Category 1
2000-12-29 00:20:00     Level 2     Category 2
2000-12-29 00:30:00     Level 3     Category 3
2000-12-29 00:40:00     Level 3     Category 3
2000-12-29 00:50:00     Level 3     Category 3
...
2000-12-31 00:10:00     Level 3     Category 3
2000-12-31 00:20:00     Level 2     Category 2
2000-12-31 00:30:00     Level 1     Category 1

data.time、data.level和data.category

假设您从以下内容开始:

import pandas as pd

df = pd.DataFrame(
    {'Time': [1, 2, 2, 3, 4, 5],
    'Level': [1, 2, 2, 2, 1, 2],
    'Category': ['a', 'a', 'a', 'a', 'b', 'a']})
首先添加一个虚拟列:

df['dummy'] = 1
现在只需选择级别和类别groupby the time,为每个组添加虚拟对象,然后绘制:

df[(df.Category == 'a') & (df.Level == 2)][['Time', 'dummy']].dummy.groupby([df.Time]).sum().plot();