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

如何使用pandas将指定结构字符串转换为预期格式的Excel数据表

问题原因

原有代码仅提取了价格字段的信息,没有解析行首的酒店、房型数据,也未将其加入表格索引,所以导出结果缺少前两级分类维度,和预期不符。

修正后代码
import pandas as pd
import ast  

# 原始数据,支持多行输入,每行用换行分隔即可
s = "Hotel1 : chambre double - {'lpd': ('112', '90','10'), 'pc': ('200', '140','10')}"
all_rows = []

for l in s.splitlines():
    # 拆分基础信息段和价格数据段
    info_part, price_part = l.split("-", 1)
    # 提取酒店名称、房型信息
    hotel_name, room_type = [x.strip() for x in info_part.split(":", 1)]
    # 解析价格字典
    price_dict = ast.literal_eval(price_part.strip())
    # 遍历每个价格类型,拼接成完整行数据
    for price_type, prices in price_dict.items():
        row = [hotel_name, room_type, price_type] + list(prices)
        all_rows.append(row)

# 构造DataFrame并设置多级索引
df = pd.DataFrame(all_rows, columns=["酒店名称", "房型", "价格类型", "价格1", "价格2", "价格3"])
df = df.set_index(["酒店名称", "房型", "价格类型"])

# 导出Excel,多级索引会自动合并单元格
df.to_excel("v.xlsx")
print(df)
效果说明
  • 生成的表格默认将酒店名称、房型、价格类型作为多级行索引,导出到Excel时会自动合并相同内容的单元格,完全匹配预期输出格式
  • 支持批量处理多行原始数据,仅需将所有原始内容按行放在字符串s中即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:06:04