在python数据框架中查找每个客户的最新付款

2024-05-16 19:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个基金募集流失预测问题。有一个付款表,列出了捐助者在不同时间的付款情况。我需要找到每个捐赠者最近支付的款项。以下是数据快照。这里PAMT是付款;EXTRELNO是捐赠者代码,PID是唯一的付款id;PAYTYPECD是付款类型(银行、永久订单等);STATUS是付款状态(退款、正常付款、更正、召回)

        PID          PDATE     PAMT    EXTRELNO PAYTYPECD   STATUS
    0   38.0      1993-12-31    9.57    0000019         X        CO
   1    39.0      1993-12-31    41.32   0000020        X         CO
   2    40.0       1993-12-31   13.10   0000020         X       CO
   3    54091.0    1994-01-01   2.02    0000020        X        CO
   4    104480.0    1994-05-19  0.50    0000020         D       OK
  1. 我想找出每个捐赠者最近支付的款项。你知道吗
  2. 捐赠频率
  3. 如何查找每种付款类型的频率和状态。你知道吗

我试着找出最近付款的日期。你知道吗

df_pay.groupby('EXTRELNO').apply(lambda x: x['PDATE'].max()).reset_index()

但如何找到付款日期。请帮忙回答这个问题和其他问题


Tags: 类型基金状态status时间pid频率co
2条回答

1-解决方案可以是:

for g,f in df_pay.groupby('EXTRELNO'):
    print(f[f['PDATE'] == f['PDATE'].max()])

2-取决于频率的含义,但可能是:

 df_pay.groupby(['PDATE'])['PID'].count()

3-小调整:

df_pay.groupby(['PAYTYPECD','STATUS','PDATE'])['PID'].count()

1-查找每个捐赠者的最新交易

pd.DataFrame(df_pay.groupby('EXTRELNO').apply(lambda x: x['PDATE'].max()),columns=['recent_date'])

还有一个办法

df_pay.sort_values(ascending=0, by='PDATE').groupby('EXTRELNO')['PDATE'].nth(0)

相关问题 更多 >