【发布时间】:2021-12-20 19:56:27
【问题描述】:
我有以下数据集
df=pd.read_csv('https://raw.githubusercontent.com/michalis0/DataMining_and_MachineLearning/master/data/sales.csv')
df["OrderYear"] = pd.DatetimeIndex(df['Order Date']).year
我想对比一下2017年和2018年的顾客,看看店里有没有流失顾客。
我做了两个对应 2017 年和 2018 年的子集:
Customer_2018 = df.loc[(df.OrderYear == 2018)]
Customer_2017 = df.loc[(df.OrderYear == 2017)]
然后我尝试这样做来比较两者:
Churn = Customer_2017['Customer ID'].isin(Customer_2018['Customer ID']).value_counts()
Churn
我得到以下输出:
True 2206
False 324
Name: Customer ID, dtype: int64
问题是一些客户可能会在数据集中出现多次,因为他们下了几个订单。
我想只获取唯一客户(Customer ID 是唯一的唯一属性),然后比较两个数据框以查看商店在 2017 年和 2018 年之间失去了多少客户。
【问题讨论】:
-
你能给出获得 df.OrderYear 的中间步骤吗?因为列中只有“订单日期”。
-
抱歉,这里是
df["OrderYear"] = pd.DatetimeIndex(df['Order Date']).year
标签: python pandas dataframe compare data-mining