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

Python中存在数据却返回Empty DataFrame的问题排查与解决

问题排查与解决方法

可能的原因及对应解决办法

1. 数据类型不匹配

你的recipe_id列可能是数值类型(int/float),但你用了字符串'85009'进行匹配,类型不一致导致所有比较结果为False,返回空DataFrame。

  • 先检查数据类型:执行print(df['recipe_id'].dtype)查看类型
  • 解决:
    • 如果是数值型,去掉引号直接用数值匹配:df_new = df[df['recipe_id'] == 85009]
    • 或者统一转为字符串类型后匹配:
      df['recipe_id'] = df['recipe_id'].astype(str)
      df_new = df[df['recipe_id'] == '85009']
      

2. 存在隐藏空格或特殊字符

recipe_id的实际值可能包含前后空格(比如' 85009'或'85009 ')、不可见特殊字符,导致和纯字符串'85009'无法匹配。

  • 解决:先清理列数据,去除前后空格(仅适用于字符串类型):
    df['recipe_id'] = df['recipe_id'].str.strip()
    df_new = df[df['recipe_id'] == '85009']
    
  • 也可以先验证是否存在包含目标数字的行:df[df['recipe_id'].str.contains('85009', na=False)],确认后再针对性清理字符。

3. 格式差异(如浮点数转字符串)

如果recipe_id是浮点数类型,转成字符串后可能变成'85009.0',和'85009'不匹配。

  • 解决:先转为整数再转字符串:
    df['recipe_id'] = df['recipe_id'].astype(int).astype(str)
    df_new = df[df['recipe_id'] == '85009']
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:25:18