根据某些条件,我在使用 pandas.merge() 连接 2 个数据帧时遇到一些问题。我希望得到一些建议
在下面的示例中,我希望加入 customerId 上的 2 个数据帧。但是,我只对贷款_df 中符合条件的最早记录感兴趣:
这意味着这是一对一的加入(如果客户不存在贷款,则为一对零)。注意:我假设日期约定是 yyyymmdd。
将 pandas 导入为 pd
Customer_df = pd.DataFrame({ 'CustomerId': [1,2,3], '结束日期 ': ['20240101', '20220101', '20250101'] })
Loans_df = pd.DataFrame({ 'LoanId': [1,2,3], 'CustomerId': [1,2,2], '日期': ['20240112', '20230101', '20240101'], ‘金额’: [1000,2000,4000]})
尝试 pandas merge() 但没有成功
您可以按
CustomerId
对贷款数据框进行分组并获取 .first()
值,然后将 customer_df
与该值合并:
df = pd.merge(customer_df, loans_df.groupby("CustomerId").first(), on="CustomerId")
输出:
CustomerId End date LoanId Date Amount
0 1 20240101 1 20240112 1000
1 2 20220101 2 20230101 2000