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

如何用Pandas框架处理菜单生成账单:提取luxury前置项至receipt列表

使用Pandas处理菜单提取指定菜品到账单

1. 先把图片菜单转成可处理的结构化数据

因为你提供的是图片格式的菜单,第一步得用OCR工具提取文本,再转成Pandas的DataFrame。这里用pytesseract来实现,先装依赖:

  • 安装Python包:pip install pytesseract pillow pandas
  • 安装Tesseract OCR引擎:Windows去官网下载安装包,Ubuntu用sudo apt install tesseract-ocr,Mac用brew install tesseract

提取文本并转DataFrame的代码:

import pytesseract
from PIL import Image
import pandas as pd

# 读取本地保存的菜单图片(先把图片下载下来命名为menu.png)
img = Image.open("menu.png")
# 提取图片里的文本
menu_raw_text = pytesseract.image_to_string(img)
# 按行拆分并过滤空行,得到菜单的每一项
menu_items = [line.strip() for line in menu_raw_text.split("\n") if line.strip()]
# 转成Pandas DataFrame
menu_df = pd.DataFrame(menu_items, columns=["content"])

2. 查找"luxury"并提取前一项到receipt列表

遍历DataFrame,找到包含"luxury"的行,把它的前一项加入receipt:

receipt = []

for index, row in menu_df.iterrows():
    # 不区分大小写查找,避免大小写问题漏找
    if "luxury" in row["content"].lower():
        # 确保不是第一行,防止索引越界
        if index > 0:
            receipt.append(menu_df.iloc[index-1]["content"])

# 查看结果
print("Receipt内容:", receipt)

注意事项

  • 如果OCR识别出来的文本有错误,比如把"luxury"识别成别的词,可以手动修正文本,或者先调整图片的对比度、清晰度再识别。
  • 如果菜单有固定格式(比如菜品名和标签分开列),可以进一步拆分DataFrame的列,让查找更精准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:35