Python 3.x 数据帧逻辑实现
我有一个具有列的数据集:Python 3.x 数据帧逻辑实现,python-3.x,pandas,Python 3.x,Pandas,我有一个具有列的数据集: `subscribe_date` `package_id` `subscription_name` `user_id` `subscription_status` 订阅状态的值为已取消,活动,失效,过期,已撤销,重新激活 基于PuxPositStutialValue>>,我必须创建一个名为 Curn的列。考虑到用户有一个值为“取消的< /强>”或“过期< /强> >的值,对于他们的PoptPosithStase 一些用户可能出现“强”>多个不同状态值<
`subscribe_date` `package_id` `subscription_name` `user_id` `subscription_status`
订阅状态的值为已取消,活动,失效,过期,已撤销,重新激活
基于 一些用户可能出现“强”>多个不同状态值< /强>,如果用户在任何时候都有一个值为“强”>“取消”<强> >或“强”>“强”>它们的订阅状态。
这是我的密码:
现在,每个用户都被标记为“是”或“否”或两者兼而有之。我如何进一步处理,如果用户有两个或多个值“是”和“否”,则在所有情况下都应将其屏蔽为“是”# Set a default value of churn as no
subscriber_data['churn'] = 'no'
# Set churn value for all row indexes as yes which Age are cancelled or expired
subscriber_data['churn'][(subscriber_data['subscription_status'] =="cancelled") | (subscriber_data['subscription_status'] =="expired")] = 'yes'
subscribe_date package_id subscription_name user_id subscription_status churn
10/28/2015 23:29 0903a465-28f7-45b3-9860-12be9deed4ca 14 Day 0002b38f-ec0a-4ee5-8710-9cf54691bb55 cancelled yes
6/21/2016 21:39 f3a5a639-f4df-4ebd-885d-abea26b37027 30-DayPass 00068201-1d40-4a84-b9bf-f4592aef9ba3 active no
6/29/2016 19:30 f3a5a639-f4df-4ebd-885d-abea26b37027 30-DayPass 00068201-1d40-4a84-b9bf-f4592aef9ba3 cancelled yes
您可以按
user\u id
对行进行分组,检查chorn
的每一行是否等于“yes”
,相应地转换该组的所有行:
import numpy as np
df.churn = np.where(df.groupby('user_id')['churn'].transform( \
lambda x: (x == 'yes').any()), 'yes', df.churn)