我不确定我想要的东西是否可以通过这种方式实现,但是。我有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”