如何使用pandas和groupby在每两个条件(列)中查找两个项目

时间:2019-04-30 15:36:29

标签: python pandas

我不确定我想要的东西是否可以通过这种方式实现,但是。我有CSV格式的OTRS报告,为我提供了一些票证及其状态。 一张票的记录如下:

 ticketnumber type_name              state            Owner           queue customer          create_time  id             subject  time_unit
0  2015071510123456       NaN  closed successful       Admin OTRS       QA      NaN  2018-06-22 11:55:19   1    Welcome to OTRS!        NaN
1  2015071510123456       NaN  closed successful        Igor            QA      NaN  2018-07-02 08:38:28  50  Changing the owner        2.0
2  2015071510123456       NaN  closed successful        Igor            QA      NaN  2018-07-02 08:39:08  51              Closed        1.0

因此,模式相同,新的订单号拥有“ Admin OTRS”作为所有者,并且其创建时间最久。 从所有者不是“ Admin OTRS”,并且create_time是最新的选择,加上“主题”更改为“关闭”这一事实,可以看到票证关闭。

我现在想做的是以下事情:

filtered_df['create_time']=pd.to_datetime(filtered_df['create_time'])
print(filtered_df['create_time'].dtype)
a = filtered_df.groupby('ticketnumber')['create_time'].unique()

哪个给我一张每张票的时间列表。

我想做的是:  -过滤掉它以获取最新和最旧的日期时间  -比较年龄最大的所有者是否为“管理员OTRS”  -比较最早的主题是否为“已关闭”  -返回给定期间内打开和关闭的那些  -返回每张票证的所有time_allocated的总和(我目前正在单独进行此操作,但是如果可以减少迭代次数,为什么不这样做)

但是,我被困在这里。例如,不知道如何利用“多个”列。按票证编号和create_time分组,但同时还要包含所有者和主题吗?

我希望这样的结果(或多个结果)

ticketnumber type_name              state            Owner           queue customer          create_time  id             subject  time_unit
0  2015071510123456       NaN  closed successful       Admin OTRS       QA      NaN  2018-06-22 11:55:19   1    Welcome to OTRS!        NaN
1  2015071510123456       NaN  closed successful        Igor            QA      NaN  2018-07-02 08:39:08  51              Closed        1.0

因此,对于所有票证(可能有很多行,而不仅仅是3行,这取决于通信方式以及发生了多少回返和泡沫),我想得到第一个-确保它是拥有的由Admin OTRS撰写,最后一个,请确保它是最新的,并且包含主题“ Closed”

0 个答案:

没有答案