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

使用re.search在字典存储的DataFrame中检索值报错如何解决

问题修复方案

错误原因

  • 调用re.search('035', text)时传入的第二个参数text是完整DataFrame对象,不是字符串类型,不符合re.search的入参类型要求,因此抛出类型错误。
  • 原遍历逻辑未准确定位到目标判断单元:需先取每个DataFrame的A列第1行的值,再进行子串匹配判断。

修复后实现代码

import re
import pandas as pd

something = []
# 遍历存储所有DataFrame的字典
for df_key, current_df in df.items():
    # 取A列第1行值,pandas默认索引从0开始,若第1行指次行可改为iloc[1]
    a_first_val = str(current_df['A'].iloc[0])
    # 判断是否包含目标子串
    if re.search(r'035', a_first_val):
        # 提取B列内容,重命名为数据集key方便合并后区分来源
        something.append(current_df['B'].rename(df_key))

# 合并结果,增加空值判断避免无匹配时报错
result = pd.concat(something, axis=1) if something else pd.DataFrame()

可选优化

如果仅需要判断简单子串是否存在,不需要复杂正则规则,可直接用if '035' in a_first_val:替代re.search逻辑,性能更高且写法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:24:05