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

如何在Python中用列表推导式筛选含'blue'子串列的DataFrame名称

筛选包含含"blue"子串列的DataFrame名称

你的问题出在判断逻辑上:"blue" in df.columns是检查是否存在精确等于"blue"的列名,但你的列名都是"blue_max"、"blue_min"这类包含"blue"子串的变体,所以这个判断永远不成立,返回空列表。

要实现筛选至少包含一个名称含"blue"子串列的DataFrame,需要遍历每个DataFrame的列名,检查是否有任意一列包含该子串,用any()函数可以简洁实现这个逻辑:

df_list = [
    df_name for df_name, df in df_dictionary.items()
    if any("blue" in col for col in df.columns)
]

print(df_list)

代码说明:

  • 遍历字典的键值对(df_name是DataFrame的名称,df是对应的DataFrame对象)
  • any("blue" in col for col in df.columns)会逐个验证每个列名,只要有一列包含"blue"子串,就返回True
  • 满足条件的DataFrame名称会被加入结果列表

如果想更直观地理解逻辑,也可以用分步循环的写法:

df_list = []
for df_name, df in df_dictionary.items():
    has_blue_column = False
    # 遍历当前DataFrame的所有列名
    for column in df.columns:
        if "blue" in column:
            has_blue_column = True
            break  # 找到符合条件的列就停止遍历
    if has_blue_column:
        df_list.append(df_name)

print(df_list)

内容的提问来源于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 11:56:45