需求:
本需求是需要计算每名客户还够最低还款额的日期,第1个客户在 5 月 11 日这天累计入账1100元 大于 最低还款额1000元,故针对客户 1 所求日期为20210511。
字段说明:
userid : 客户号
mini_amt:最低还款额
amount: 入账金额
date:入账日期
二、使用步骤
1.引入库
代码如下(示例):
import pandas as pd
2.读入数据
代码如下(示例):
'''
userid mini_amt amount date
1 1000 300 20210501
1 1000 800 20210511
1 1000 200 20210521
2 5000 2400 20210510
2 5000 500 20210514
2 5000 1000 20210518
2 5000 3000 20210529
2 5000 300 20210531
'''
df = pd.read_clipboard()
df
def get_date(df):
return (
df.sort_values('date') # 使用sort_values函数按照日期('date'列)对数据框进行排序。
.assign(累积入账=lambda x: x.amount.cumsum()) # 使用assign函数创建一个新的列'累积入账',该列是根据'amount'列的累积和计算得出的
.query('累积入账 >= mini_amt') # 使用query函数根据条件筛选出'累积入账'大于等于'mini_amt'的行
.date # 从筛选后的数据中提取出'date'列
.iat[0] # 使用iat[0]获取第一个符合条件的日期
)
#按用户分组并应用这个函数:
df.groupby('userid').apply(get_date)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。