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

如何使用Pandas合并三个数据集:餐厅、用户与评分数据

合并餐厅、用户与评分数据集的解决方案

没问题!要把这三个数据集整合为包含餐厅特征、用户特征和对应评分标签的统一数据集,用Python的pandas库就能高效完成。下面是详细的步骤和代码示例:

步骤1:导入必要的库

首先确保你已经安装了pandas,然后导入它:

import pandas as pd

步骤2:读取三个CSV文件

使用pd.read_csv()读取你的三个数据集:

# 读取餐厅数据
restaurants = pd.read_csv('restaurants.csv')
# 读取用户数据
users = pd.read_csv('users.csv')
# 读取评分数据
ratings = pd.read_csv('rating.csv')

步骤3:逐步合并数据集

我们需要以rating.csv为核心(它关联了用户和餐厅),先合并餐厅特征,再合并用户特征:

3.1 合并评分与餐厅数据

通过place_id将评分数据和餐厅数据关联起来:

# 合并评分与餐厅数据,保留双方都匹配的记录(内连接)
rating_with_rest = pd.merge(ratings, restaurants, on='place_id', how='inner')

3.2 合并用户特征到结果中

接着通过user_id将用户数据合并到上面的结果里:

# 合并用户数据,同样使用内连接确保每条记录都有对应的评分、餐厅和用户信息
final_dataset = pd.merge(rating_with_rest, users, on='user_id', how='inner')

优化:处理重复的列名

注意到restaurants.csv和users.csv都有feature1、feature2列,合并后会自动加上_x(来自餐厅)和_y(来自用户)的后缀。如果想让列名更清晰,可以用两种方式处理:

方法1:合并时指定自定义后缀

final_dataset = pd.merge(
    pd.merge(ratings, restaurants, on='place_id', how='inner'),
    users,
    on='user_id',
    how='inner',
    suffixes=('_rest', '_user')  # 餐厅特征加_rest后缀,用户特征加_user后缀
)

方法2:提前重命名列

# 重命名餐厅的特征列
restaurants = restaurants.rename(columns={'feature1': 'rest_feature1', 'feature2': 'rest_feature2'})
# 重命名用户的特征列
users = users.rename(columns={'feature1': 'user_feature1', 'feature2': 'user_feature2'})
# 再进行合并
final_dataset = pd.merge(pd.merge(ratings, restaurants, on='place_id'), users, on='user_id')

查看最终结果

你可以用head()方法查看合并后的数据集前几行:

print(final_dataset.head())

这样得到的final_dataset就完整包含了你需要的所有信息:餐厅特征、用户特征以及对应的评分标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:55:11