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

如何批量读取TXT酒店评论并转换为指定结构的Pandas DataFrame

实现方案(基于Python Pandas)

核心思路

先把单文件全量文本拆分为单评论行,再匹配酒店信息表拿到对应ID,最后生成评论唯一ID按要求输出即可。

分步代码

1. 拆分全量文本为单条评论结构

import pandas as pd
# 替换为你自己的两个原始表变量名:df_raw(含file_name、text字段)、df_hotel(酒店信息表)
# 按换行符拆分全量文本,炸成一行对应一条评论
df_review = df_raw.assign(
    single_review = df_raw["text"].str.split("\n")
).explode("single_review", ignore_index=True)
# 过滤空行(避免文件末尾空行产生脏数据)
df_review = df_review[df_review["single_review"].str.strip() != ""]
# 按制表符拆分出日期、评论标题、评论内容三个字段
df_review[["Date", "Review Title", "Review Text"]] = df_review["single_review"].str.split("\t", n=3, expand=True)

2. 匹配获取Hotel ID

# 拆分文件名得到国家、城市、酒店名,用于关联酒店信息表
df_review[["Country", "City", "Hotel"]] = df_review["file_name"].str.split("_", n=3, expand=True)
# 关联酒店信息表,拿到对应酒店的唯一ID
df_review = pd.merge(
    left = df_review,
    right = df_hotel.rename(columns={"ID": "Hotel ID"}),
    on = ["Country", "City", "Hotel"],
    how = "left"
)
# 可选校验:打印Hotel ID为空的行,检查是否有文件名和酒店信息表不匹配的异常数据
print(df_review[df_review["Hotel ID"].isna()]["file_name"].unique())

3. 生成Review ID并输出目标结构

# 生成自增的唯一Review ID,也可根据需求自定义规则(如酒店ID+序号)
df_review["Review ID"] = range(1, len(df_review) + 1)
# 按要求的字段顺序输出最终表
df_final = df_review[["Review ID", "Hotel ID", "Date", "Review Title", "Review Text"]]

可选优化

如果文件名或评论内容前后有多余空格,拆分时可以加str.strip()处理,避免关联或拆分失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:06:04