【发布时间】:2022-01-07 21:33:30
【问题描述】:
当本金余额低于支付金额的 5% 时,我试图获取日期变量的最小值。我希望按帐号提取此内容,但我不想要按帐号分组的新 df。
我的 df 看起来像这样:
| account_number | period_date | principal_balance_amt | disbursement_amt |
| -------------: | ----------- | --------------------- | ---------------- |
| 1 | 2021-01-01 | 10 | 100 |
| 1 | 2021-02-01 | 6 | 100 |
| 1 | 2021-03-01 | 3 | 100 |
| 1 | 2021-04-01 | 0 | 100 |
| 2 | 2021-01-01 | 20 | 100 |
| 2 | 2021-02-01 | 15 | 100 |
| 2 | 2021-03-01 | 11 | 100 |
| 2 | 2021-04-01 | 8 | 100 |
我已经尝试过类似的代码来使它工作,但它只是返回无效的语法。
df['churn_date'] = df.loc[groupby('account_number').(df['principal_balance_amt'] <= 0.05 * df['disbursement_amt']), 'period_date'].min()
我希望代码创建一个如下所示的 df:
| account_number | period_date | principal_balance_amt | disbursement_amt | churn_date |
|---|---|---|---|---|
| 1 | 2021-01-01 | 10 | 100 | 2021-03-01 |
| 1 | 2021-02-01 | 6 | 100 | 2021-03-01 |
| 1 | 2021-03-01 | 3 | 100 | 2021-03-01 |
| 1 | 2021-04-01 | 0 | 100 | 2021-03-01 |
| 2 | 2021-01-01 | 20 | 100 | nan |
| 2 | 2021-02-01 | 15 | 100 | nan |
| 2 | 2021-03-01 | 11 | 100 | nan |
| 2 | 2021-04-01 | 8 | 100 | nan |
【问题讨论】:
标签: python pandas dataframe pandas-groupby min