如何从df_mtrs数据框提取2019-2022年连续存在的客户数据?
提取2019-2022年连续存在的客户数据
以下是基于pandas实现的具体步骤:
- 确保交易年份字段为整数类型(避免类型异常)
df_mtrs['trxyear'] = df_mtrs['trxyear'].astype(int)
- 筛选出2019至2022年的交易数据
year_range_df = df_mtrs[df_mtrs['trxyear'].isin([2019, 2020, 2021, 2022])]
- 按客户名称分组,筛选出覆盖全部四个年份的客户
# 分组后检查每个客户的年份集合是否包含所有目标年份 qualified_customers = year_range_df.groupby('customer_name')['trxyear'].agg( lambda x: set(x) == {2019, 2020, 2021, 2022} ).reset_index(name='qualified') # 提取符合条件的客户名单 qualified_list = qualified_customers[qualified_customers['qualified']]['customer_name'].tolist()
- 从原数据框中提取这些客户的对应数据
# 提取客户的所有历史数据 final_df = df_mtrs[df_mtrs['customer_name'].isin(qualified_list)] # 若仅需2019-2022年的数据,可使用: # final_df = year_range_df[year_range_df['customer_name'].isin(qualified_list)]
内容的提问来源于stack exchange,提问作者Mehmaam
相关产品推荐
相关产品推荐

