如何用Python按CSV列中关键词分组银行交易记录
按描述中的关键词分组银行交易记录
方法1:提取描述开头的关键词(适合关键词在最前方的情况)
如果交易描述都是「关键词 + 其他内容」的格式(比如示例里的AMZN MKTP US*1V4KI6LV3 09/01 PURCHASE LVNV),可以直接提取描述的第一个单词作为分组依据:
import pandas as pd # 读取CSV文件 test = pd.read_csv('你的账单文件.csv') # 处理描述列的多余空格(可选,避免拆分出错) test['Description'] = test['Description'].str.strip() # 新增列存储提取的关键词,取描述的第一个元素 test['Category'] = test['Description'].str.split().str[0] # 按新的Category列分组 grouped = test.groupby(['Category']) # 遍历分组结果 for key, item in grouped: print(f'Key is: {key}') print(item, '\n\n')
方法2:匹配预设关键词列表(适合关键词位置不固定的情况)
如果关键词可能出现在描述任意位置,或者你想指定要匹配的关键词集合,可以先定义关键词列表,再用正则匹配提取:
import pandas as pd import re # 读取CSV文件 test = pd.read_csv('你的账单文件.csv') # 预设需要匹配的关键词 keywords = ['AMZN', 'GOOGLE', 'STARBUCKS', 'WALMART'] # 用正则匹配关键词,忽略大小写,返回第一个匹配到的关键词 test['Category'] = test['Description'].str.extract( f'({"|".join(keywords)})', flags=re.IGNORECASE, expand=False ) # 按Category分组(dropna=False保留未匹配到关键词的记录) grouped = test.groupby(['Category'], dropna=False) # 遍历分组结果 for key, item in grouped: print(f'Key is: {key}') print(item, '\n\n')
内容的提问来源于stack exchange,提问作者Kaiti Leslie
相关产品推荐
相关产品推荐

