【发布时间】:2019-03-19 10:47:40
【问题描述】:
我的客户副本具有不同的状态,因为每个客户订阅/产品都有一行。我想为客户生成一个new_status,并且要“取消”它,每个订阅状态都必须一起“取消”。
我用过:
df['duplicated'] = df.groupby('customer', as_index=False)['customer'].cumcount()
分隔索引中的每个重复项以指示重复值
Customer | Status | new_status | duplicated
X |canceled| | 0
X |canceled| | 1
X |active | | 2
Y |canceled| | 0
A |canceled| | 0
A |canceled| | 1
B |active | | 0
B |canceled| | 1
因此,我想使用 .apply 和/或 .loc 来生成:
Customer | Status | new_status | duplicated
X |canceled| | 0
X |canceled| | 1
X |active | | 2
Y |canceled| | 0
A |canceled| canceled | 0
A |canceled| canceled | 1
B |active | | 0
B |canceled| | 1
【问题讨论】:
-
Y 没有重复,但必须取消。公式可以包含或不包含唯一值
-
性能重要吗?
标签: python pandas apply pandas-loc