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

如何在DataFrame字典中找到含带'blue'子串列的DataFrame名称

解决方法

先纠正你原代码里的两个关键问题:

  • 遍历df_dict时,你定义的df其实是字典的键(也就是DataFrame的名称),并不是实际的DataFrame对象,所以没法调用.columns属性;
  • 即使拿到了DataFrame的列名,.columns.contains()的用法有误,应该用df.columns.str.contains('blue').any()来判断是否存在至少一列包含目标子串。

下面给你几种实用的实现方式:

方式1:修正后的循环写法

适合需要在遍历过程中执行额外操作的场景:

matching_names = []
# 遍历字典的键值对,name是DataFrame名称,df是对应的数据框
for name, df in df_dict.items():
    # 检查是否有列名包含'blue',加case=False可忽略大小写,按需添加
    if df.columns.str.contains('blue').any():
        matching_names.append(name)

方式2:列表推导式(更简洁)

如果只是单纯筛选符合条件的名称,用列表推导式一行就能完成,无需显式写循环:

matching_names = [name for name, df in df_dict.items() if df.columns.str.contains('blue').any()]

方式3:获取第一个符合条件的名称

如果只需要找到第一个满足要求的DataFrame名称,可以用next():

first_match = next((name for name, df in df_dict.items() if df.columns.str.contains('blue').any()), None)
# 没有符合条件的DataFrame时,会返回None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:00:58