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

如何编写传入set_num筛选Pandas DataFrame对应行的函数

原有代码问题排查

你写的自定义函数存在3个核心错误:

  • 参数缺失:需求是调用时传入set_num字符串参数即可返回结果,但现有函数只定义了df一个入参,没有接收目标匹配值的位置。
  • 索引方法误用:iloc是pandas中按整数位置取数的方法,不支持传入列名字符串做筛选,也没有实现按列值匹配行的核心逻辑。
  • 返回值错误:display()是Jupyter环境的打印函数,本身无返回值,放在return语句后无法拿到可复用的筛选结果,仅能触发打印动作。
正确实现方案

固定使用sets数据表的版本

如果函数固定操作你提到的sets这个DataFrame,直接按如下方式定义即可,调用时只需要传入目标set_num字符串:

def select_set_row(set_num: str):
    # 匹配set_num列和传入值完全一致的行,返回结果DataFrame
    return sets[sets['set_num'] == set_num]

调用示例:

# 传入目标set_num字符串即可拿到匹配行
result = select_set_row("你要查找的set_num值")

通用兼容版本

如果需要函数兼容不同的DataFrame输入,可以把DataFrame也作为可选入参,复用性更强:

def select_set_row(df, set_num: str):
    """
    参数说明:
    df: 要筛选的源DataFrame
    set_num: 要匹配的set_num字符串值
    返回值:匹配到的所有行组成的DataFrame
    """
    return df[df['set_num'] == set_num]

调用示例:

result = select_set_row(sets, "你要查找的set_num值")

补充说明:如果你实际要匹配的是num_parts列的数值,只需要把筛选条件替换为df[df['num_parts'] == int(set_num)]即可,注意提前把传入的字符串参数转为整数类型,避免类型不匹配导致筛选结果为空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:12:23