如何用Pandas按日期范围分组整理经济流动性项目参与者信用评分变化
基于Pandas整理信用评分变化数据的解决方案
需求背景
需要整理经济流动性项目参与者的信用评分变化,原始数据如下:
Name Date Credit Score 0 John Doe 2022.01.03 653 1 Mary Jane 2022.01.05 720 2 John Doe 2022.08.14 695 3 Mary Jane 2022.09.17 640
需整理为如下目标格式:
Name initial Score updated score John Doe 653 695 Mary Jane 720 640
解决方案
核心思路是拆分初始评分(日期≤2022-07-01)和更新评分(日期>2022-07-01)两个数据集,再按用户姓名合并:
导入依赖并读取数据
导入Pandas并构造/读取原始数据:import pandas as pd # 构造原始数据(也可从csv/excel文件读取) data = { 'Name': ['John Doe', 'Mary Jane', 'John Doe', 'Mary Jane'], 'Date': ['2022.01.03', '2022.01.05', '2022.08.14', '2022.09.17'], 'Credit Score': [653, 720, 695, 640] } df = pd.DataFrame(data)转换日期格式
将Date列转为datetime类型,方便后续日期筛选:df['Date'] = pd.to_datetime(df['Date'], format='%Y.%m.%d')拆分初始与更新数据
分别筛选两类数据并重命名列名:# 提取初始评分数据 initial_df = df[df['Date'] <= '2022-07-01'][['Name', 'Credit Score']].rename(columns={'Credit Score': 'initial Score'}) # 提取更新评分数据 updated_df = df[df['Date'] > '2022-07-01'][['Name', 'Credit Score']].rename(columns={'Credit Score': 'updated score'})合并数据集
按Name列合并两个数据集,输出目标格式:result_df = pd.merge(initial_df, updated_df, on='Name') print(result_df.to_string(index=False))
运行代码后,输出结果将完全匹配目标格式。
内容的提问来源于stack exchange,提问作者Enrique Ponce
相关产品推荐
相关产品推荐

