如何计算按年迄今状态过滤的状态更改的票证?

时间:2019-03-28 17:38:59

标签: python pandas dataframe

我有2个数据集的快照,存储在2个包含JIRA票证的数据框中,有一个名为 UpdatedDate 的列,它告诉我何时拍摄快照。 我想按年初至今计算仍保持打开状态的票证数量,这基本上意味着:明天仍将打开总共有多少张票证(组合快照)(例如2019-03-29)。

但是问题是我的两个数据框都可能包含相同的JIRA问题,但是票证的状态 可能可能不改变。

# this df1 (Snapshot 1)
Issue key   Project name    Status   UpdatedDate
111         Proj1          Analysis   2019-03-18
222         Proj1          Open       2019-03-18

# this df2 (Snapshot 2)
Issue key   Project name    Status   UpdatedDate
111         Proj1          Done      2019-03-28
222         Proj1          Open      2019-03-28

因此,如上表所示,快照2上issue111的状态已更改为完成,因为issue222的状态仍为 Open 。 因此,如果我的Year-to-Date过滤器设置为2019-03-29。它会显示2张状态为 Open 的票,但其中一张将是重复的。

如何计算仍在打开但没有重复的票证数量?

1 个答案:

答案 0 :(得分:0)

您可以先sort_values(),然后再drop_duplicates()

pd.concat([df1, df2]) \
  .sort_values(['UpdatedDate'], ascending=[False]) \
  .drop_duplicates(['Issue key'], keep='first') \
  .loc[lambda x: x.Status == 'Open']