当每个客户有多个计划时,他们就会被复制。我想为客户设置状态:
如果他们填充了“cancelled_at”的所有产品,则客户状态被取消,但是当不是每个产品都填充了“cancelled_at”时,状态为“降级”,因为他丢失了一个产品。
customer|canceled_at|status
x |3/27/2018 |
x | |
y |2/2/2018 |
y |2/2/2018 |
z |1/1/2018 |
a | |
我已经有取消状态,现在我只需要降级
df['status']=(df.groupby('customer')['canceled_at'].
transform(lambda x: x.notna().all()).map({True:'canceled'})).fillna(df.status)
customer|canceled_at|status
x |3/27/2018 |downgrade
x | |downgrade
y |2/2/2018 |canceled
y |2/2/2018 |canceled
z |1/1/2018 |canceled
a | |