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

如何从Excel表提取数据并转为集合格式?含电影推荐系统Python代码需求

解答你的Excel数据转集合格式问题

Hey there! Let's work through your questions step by step—they're perfect for your movie recommendation system project.

问题2:将Excel导入的电影评分数据转成集合格式

首先看你现有的代码,读取后的DataFrame里USER列存在NaN值(比如Julia Roberts的后续行),这是因为Excel里同一个用户的信息只在第一行填写了。我们先把数据清洗好,再转成集合:

import pandas as pd

# 读取Excel数据(注意:新版pandas中sheetname已改为sheet_name,避免版本警告)
df = pd.read_excel('project.xlsx', sheet_name='Sheet1')

# 填充USER列的缺失值:用前一行的有效值补全同一用户的所有行
df['USER'] = df['USER'].ffill()

# 将每行数据转为元组,再转换为集合
movie_rating_set = set(df.itertuples(index=False, name=None))

# 打印结果示例
for item in movie_rating_set:
    print(item)

代码解释:

  • ffill():全称forward fill,会向下填充USER列的缺失值,这样Julia Roberts的所有电影评分行都会正确关联到她的名字。
  • itertuples(index=False, name=None):把DataFrame的每一行转成不含索引、无自定义名称的元组,确保每个元素是(用户名, 电影名, 评分)的结构。
  • set():将元组序列转换为集合,自动保证元素唯一性(如果Excel里有重复行,集合会自动去重)。

运行后你会得到类似这样的集合输出:

('Julia Roberts', 'Shrek', 2.5), ('Julia Roberts', 'V for Vendetta', 3.5), ('Julia Roberts', 'Pretty Woman', 3.0), ...

问题1:通用Excel数据转集合格式方法

如果是其他Excel数据,通用步骤如下:

  • 读取数据:用pd.read_excel()读取目标工作表,根据需要指定sheet_name、usecols等参数筛选数据。
  • 清洗数据:处理缺失值(如ffill()、bfill()或填充默认值)、转换数据类型(比如把评分转成float)。
  • 转换为集合:通过itertuples()或values.tolist()把每行转成可哈希的类型(比如元组),再用set()转换。

举个无缺失值的简单例子:

import pandas as pd

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 直接转成集合
data_set = set(tuple(row) for row in df.values)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:20:03