Python或SQL解决方案-创建有效日期和过期日期表



我有一个跟踪银行账户信息的表。每个银行账户都可以添加一个人作为感兴趣的一方,并在任何时候(甚至在同一天)删除。这个人可以添加一次不删除,也可以添加和删除一次或多次(甚至一天几次)

的例子:

<表类> 日期 BankId AccountID 类型 PersonId tbody><<tr>2/9/202200010004添加00152/10/202200040005添加00383/2/202200010004删除0015

我假设数据是由Date排序的。然后你可以这样做:

df["tmp"] = df["Type"].eq("Addition")
df["tmp"] = df.groupby(["BankId", "AccountID", "PersonId"])["tmp"].cumsum()
out = (
df.pivot(
index=["BankId", "AccountID", "PersonId", "tmp"], columns="Type", values="Date"
)
.reset_index()
.rename_axis(None, axis=1)
.drop(columns="tmp")
)
print(out)

打印:

BankId  AccountID  PersonId   Addition  Deletion
0       1          4        15   2/9/2022  3/2/2022
1       4          5        38  2/10/2022       NaN

最新更新