我有 2 个数据集快照存储在包含 JIRA 票证的 2 个数据帧中,有一个名为UpdateDate的列告诉我快照是何时拍摄的。 我想按年初至今计算仍然保持打开状态的票证数量,这基本上意味着:明天总共有多少票(合并快照)仍然开放(例如 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
因此,如上表所示,问题 111 的状态在快照 2 上已更改为完成,而 issue222 的状态仍为打开。 因此,如果我的年初至今过滤器设置为 2019-03-29。它将向我显示 2 张状态打开的票证,但其中一张将是重复的。
如何计算仍在打开但没有重复的票证数量?
你可以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']