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

如何解决pandas报错"If using all scalar values, you must pass an index"

报错的核心原因是你变量d中的第二个元素为字符串格式的字典,不是可解析的结构化对象,且不同条目对应的房型数量不一致,直接传入pandas构建DataFrame时无法匹配维度,就会触发标量值需指定索引的报错。

修复代码示例

import pandas as pd
import ast

# 示例变量d
d = ['Houda Golf & Aquapark Novostar Monastir ', " {'All Inclusive soft': ('202', '175', '15%'), 'Demi Pension': ('161', '140', '15%'), 'Petit Dejeuner': ('137', '119', '15%'), 'DP plus': ('237', '119', '15%')}"]

# 转换字符串字典为Python字典,strip处理多余空格
price_dict = ast.literal_eval(d[1].strip())
hotel_name = d[0].strip()

# 规整为统一的结构化列表
processed_data = []
for room_type, (price1, price2, discount) in price_dict.items():
    processed_data.append({
        "酒店名称": hotel_name,
        "房型": room_type,
        "价格1": price1,
        "价格2": price2,
        "折扣": discount
    })

# 构建DataFrame,无需额外指定索引
df = pd.DataFrame(processed_data)

# 后续写入Excel的逻辑保持不变即可
# df.to_excel("你的文件路径.xlsx", index=False)

批量处理优化建议

如果需要处理多个同结构的列表数据,不要在循环中逐次生成DataFrame写入Excel,可先将所有处理后的结构化数据存入一个总列表,全部处理完成后统一生成DataFrame,既完全规避维度不匹配问题,也能大幅提升运行效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:00:04