You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Pandas循环结合条件筛选匹配日期的银行审批数据

用循环实现银行审批数据筛选需求

现有一份银行审批数据集,包含EOM Date(数据上传日期)、Approve Date(实际审批日期)及Facility Id字段。原本可以用numpy的np.where方法筛选出EOM Date与Approve Date匹配的记录,现在需要改用循环方式实现该筛选需求。

原始数据集

import pandas as pd

df = pd.DataFrame(data=[["1/08/23","1/08/23","yy1"], 
                    ["1/08/23","1/08/23","yy2"], 
                    ["1/08/23","1/07/23","yy3"],                                            
                    ["1/07/23","1/07/23","yy4"], 
                    ["1/07/23", "1/06/23", "yy5"], 
                    ["1/07/23","1/07/23","yy6"], 
                    ["1/06/23","1/06/23","yy7"], 
                    ["1/06/23","1/05/23","yy8"], 
                    ["1/06/23","1/04/23","yy9"]], 
                columns= ["EOM Date","Approve Date","Facility Id"])

期望输出

输出代码

filtered_df = pd.DataFrame(data=[["1/08/23","1/08/23","yy1"],
                    ["1/08/23","1/08/23","yy2"],
                    ["1/07/23","1/07/23","yy4"], 
                    ["1/07/23", "1/07/23", "yy6"],
                    ["1/06/23","1/06/23","yy7"]], 
                columns= ["EOM Date","Approve Date","Facility Id"])

输出表格

EOM DateApprove DateFacility Id
1/08/231/08/23yy1
1/08/231/08/23yy2
1/07/231/07/23yy4
1/07/231/07/23yy6
1/06/231/06/23yy7

循环实现方案

import pandas as pd

# 原始数据集
df = pd.DataFrame(data=[["1/08/23","1/08/23","yy1"], 
                    ["1/08/23","1/08/23","yy2"], 
                    ["1/08/23","1/07/23","yy3"],                                            
                    ["1/07/23","1/07/23","yy4"], 
                    ["1/07/23", "1/06/23", "yy5"], 
                    ["1/07/23","1/07/23","yy6"], 
                    ["1/06/23","1/06/23","yy7"], 
                    ["1/06/23","1/05/23","yy8"], 
                    ["1/06/23","1/04/23","yy9"]], 
                columns= ["EOM Date","Approve Date","Facility Id"])

# 初始化空列表存储符合条件的行
filtered_rows = []

# 遍历DataFrame的每一行
for index, row in df.iterrows():
    # 判断EOM Date和Approve Date是否相等
    if row["EOM Date"] == row["Approve Date"]:
        filtered_rows.append(row.tolist())

# 生成筛选后的DataFrame
filtered_df = pd.DataFrame(filtered_rows, columns=df.columns)

print(filtered_df)

说明

  • 通过df.iterrows()遍历原始数据集的每一行,获取行索引和行数据
  • 逐行判断EOM Date与Approve Date是否匹配,匹配则将该行转为列表加入filtered_rows
  • 最后用筛选后的行列表创建新的DataFrame,保持原列名不变

内容的提问来源于stack exchange,提问作者svenvuko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:25:33