You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas按创建日期统计提前3个月开户的贷款用户

需求说明

现有数据表包含USER_ID、date_opened、Loan_created三个字段,需统计每个用户中满足date_opened早于Loan_created提前3个月的记录数,最终按USER_ID维度输出计数结果。

示例输入数据

USER_ID  date_opened Loan_created
1        22/12/2022   23/03/2023
1        12/12/2021   12/02/2021
1        06/05/2021   07/09/2021

期望输出

USER_ID Count
1        2
Pandas实现方案

以下是具体的实现步骤:

  1. 导入Pandas库并构造示例数据
    先导入必要的库,若读取外部数据可替换为pd.read_csv()等方法:

    import pandas as pd
    
    data = {
        'USER_ID': [1, 1, 1],
        'date_opened': ['22/12/2022', '12/12/2021', '06/05/2021'],
        'Loan_created': ['23/03/2023', '12/02/2021', '07/09/2021']
    }
    df = pd.DataFrame(data)
    
  2. 转换日期字段为datetime类型
    原始日期为字符串格式,需转换为datetime类型才能进行日期计算,注意此处日期格式为日/月/年,需指定dayfirst=True:

    df['date_opened'] = pd.to_datetime(df['date_opened'], dayfirst=True)
    df['Loan_created'] = pd.to_datetime(df['Loan_created'], dayfirst=True)
    
  3. 筛选满足条件的记录
    通过计算Loan_created往前推3个月的日期,判断date_opened是否早于或等于该日期:

    mask = df['date_opened'] <= df['Loan_created'] - pd.DateOffset(months=3)
    filtered_df = df[mask]
    
  4. 按用户分组统计数量
    对筛选后的结果按USER_ID分组,统计每组记录数并将结果列重命名为Count:

    result = filtered_df.groupby('USER_ID').size().reset_index(name='Count')
    
  5. 查看结果
    打印输出最终结果:

    print(result)
    

运行代码后输出与期望一致:

USER_ID  Count
0        1      2

内容的提问来源于stack exchange,提问作者Data Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:25:19