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

如何在Pandas中传递变量过滤DataFrame?拆分文件名变量后返回空表

问题解决方法

核心错误原因

你的代码里的关键问题是把变量用单引号括起来了:

df1=df[(df['MSAN_IP'] == 'variable1') & (df['OUTER_VLAN'] == variable2)]

这里的'variable1'是固定字符串,不是你前面定义的变量variable1,程序会去匹配MSAN_IP字段等于字符串"variable1"的行,而非你从文件名提取的IP地址,自然找不到匹配结果,返回空DataFrame。

修正后的代码

去掉variable1的单引号,直接使用变量本身:

for txt in na_sheets:
    x = txt.replace('.txt', '')
    y = x.split("_", 1)
    variable1 = y[0]
    variable2 = y[1]
    # 直接使用变量variable1,不要加单引号
    df1 = df[(df['MSAN_IP'] == variable1) & (df['OUTER_VLAN'] == variable2)]
    # 可添加df1的处理逻辑,比如打印或保存
    print(df1)

额外排查点

如果修正后仍为空结果,检查以下情况:

  • 数据类型匹配:若df['OUTER_VLAN']是整数类型,需把variable2转为整数:
    variable2 = int(y[1])
    
  • 文件名拆分正确性:在循环中打印变量值,确认提取的IP和VLAN符合预期:
    print(f"提取的IP: {variable1}, VLAN: {variable2}")
    
  • 数据存在性:用已知存在的IP和VLAN单独测试过滤逻辑,确认df中确实有对应数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:22:50