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

使用Lambda函数搜索DataFrame无结果时,如何解决IndexError?

解决空搜索结果引发的IndexError问题

当搜索词不存在时,过滤后的DataFrame是空的,直接传给tabulate会触发IndexError(因为没有行数据可供解析)。解决思路很直接:先判断过滤结果是否为空,再决定输出内容。

修改后的代码如下:

searchterm = input("Enter search term: ")
sheet1_name = 'MySheetName' 
sheet1_id = 'MyGoogleSheetID' 
sheet1_url = f'https://docs.google.com/spreadsheets/d/{sheet1_id}/gviz/tq?tqx=out:csv&sheet={sheet1_name}'
df = pd.read_csv(sheet1_url)

# 执行搜索过滤逻辑
filtered_df = df[df.map(lambda x: isinstance(x, str) and searchterm.lower() in x.lower()).any(axis=1)]

# 判断结果是否为空,分情况输出
if not filtered_df.empty:
    print(tabulate(filtered_df, headers='keys', tablefmt='simple_grid', maxcolwidths=[None, None, 100]))
else:
    print("No results.")

关键说明

  • 用filtered_df.empty属性判断DataFrame是否为空,这是Pandas官方推荐的高效判断方式
  • 将过滤结果存入新变量(也可复用原变量),逻辑更清晰,也避免误操作原数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 11:12:34