根据列表pandas-python更改列值



我希望在2018年的订单数据中跟踪2019年将要流失的客户,这样我就可以进行一些分析,比如客户来自哪里,如果他们的订单规模与不会流失的客户相比一直在减少。

2018年的订单数据是一个名为"order_data"的panda df,我有一个2019年将流失的客户列表,名为"churn_customers_2019"。在order_data中有一个名为Customer_id的列。列表中还填充了将要流失的客户端的Customer_id名称。

然而,我的逻辑运行不好。

order_data['churn in 2019?'] = str('N')
for x in order_data['Customer_id']:
if x in churn_customers_2019:
order_data['churn in 2019?'][x] = 'Y'

如果我运行这个代码,所有东西都会变为N,而不是Y。只有大约10%的客户流失。

我建议使用np.where和isin来解决您的问题,同样:

order_data['churn in 2019?'] = np.where(order_data['Customer_id'].isin(churn_customers_2019), 'Y', 'N')

最新更新