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

如何用Pandas筛选CSV银行流水关键词并汇总对应消费总金额

解决方法

你已经完成了模糊匹配筛选行的核心步骤,后续不需要手动遍历行,直接调用Pandas内置的求和方法即可实现需求,修改后完整代码如下:

import pandas as pd

keyword = input("Enter the keyword you wish to search in the statement: ")

# 读取无表头的银行流水CSV
df = pd.read_csv('accountactivity.csv', header=None)

# 模糊匹配交易名称包含关键词的行,不区分大小写,空值默认不匹配
dff = df.loc[df[1].str.contains(keyword, case=False, na=False)]

if not dff.empty:
    # 将支出金额转为数值类型后求和,异常值自动忽略
    total_sum = pd.to_numeric(dff[2], errors='coerce').sum()
    # 输出所有匹配到的交易名称
    for trade_name in dff[1]:
        print(trade_name)
    print(f"The sum for expenses at {keyword} is of: {total_sum}$")
else:
    print("Keyword returned no results.")

关键修改说明

  • 新增na=False参数:避免交易名称列存在空值时,str.contains方法抛出异常,空值会统一判定为不匹配关键词
  • 新增pd.to_numeric转换:防止CSV读取的金额为字符串格式无法求和,errors='coerce'配置会自动把无法转换为数值的异常内容转为空值,求和时自动忽略
  • 直接调用sum()方法:不需要手动循环遍历每一行累加,Pandas内置的向量化运算效率远高于手动循环,数据量越大优势越明显

这个实现完全满足子串模糊匹配、不区分大小写的需求,输入netflix可以正常匹配到NETFLIX.COM _V这类内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:57:01