可以使用Pandas库中的DataFrame进行数据处理和筛选。首先,我们需要将数据按照客户和订单时间排序,然后用rolling函数指定窗口为12,判断每个客户在过去的12个月内是否有订单。示例代码如下:
import pandas as pd
# 读取订单数据
orders = pd.read_csv('orders.csv')
# 按照客户和订单时间排序
orders.sort_values(['customer_id', 'order_date'], inplace=True)
# 判断每个客户在过去的12个月内是否有订单
orders['not_ordered_in_12m'] = ~orders.groupby('customer_id')['order_date'].rolling('365d').max().fillna(0).diff().dt.days.le(365)
# 输出未下单客户列表
not_ordered_customers = orders.loc[orders['not_ordered_in_12m'], 'customer_id'].unique().tolist()
print(not_ordered_customers)
在上述代码中,我们首先读取了订单数据,并按照客户和订单时间排序。接下来,通过使用rolling函数指定窗口为365天(即12个月),判断每个客户在过去的12个月内是否有订单。最后,我们输出了未下单客户的列表。