复制
收藏
提问
简洁

import pandas as pd # 1.读取数据 print("1.读取数据".center(100, '*')) # 读取users.dat表中数据 users = pd.read_csv('./data/users.dat', sep='::', header=None, names=['UserID', 'Gender', 'Age', 'Occupation', 'Zip-code'], engine='python') print("user表有%s条数据" % users.shape[0]) print(users.head()) # 读取movies.dat表中数据 movies = pd.read_csv('./data/movies.dat', sep='::', header=None, names=["MovieID", "Title", "Genres"], engine='python') print("movies表有%s条数据" % movies.shape[0]) print(movies.head()) # 读取ratings.dat表中数据 ratings = pd.read_csv('./data/ratings.dat', sep='::', header=None, names=["UserID", "MovieID", "Rating", "Timestamp"], engine='python') print("ratings表有%s条数据" % ratings.shape[0]) print(ratings.head()) # 主键合并三张表数据 movie_data = pd.___(1)__(users, pd.merge(movies, ratings)) print("原始数据有%d条" % (len(movie_data))) # 2.检测每一列缺失值的数量 print("2.缺失值检测".center(100, '*')) # 查看每一列缺失值的数量 print(movie_data.___(2)__().sum()) # 3.检测有无重复值 print("3.重复值检测".center(100, '*')) print(movie_data.___(3)__().sum()) # 4.删除缺失值 print("4.删除缺失值".center(100, '*')) # 按行删除缺失值 movie_data = movie_data.___(4)__() # 删除缺失值后查看缺失值情况 print(movie_data.isnull().sum()) # 5.删除重复值 print("5.删除重复值".center(100, '*')) movie_data = movie_data.drop_duplicates() # 删除重复值后查看重复值情况 print(movie_data.duplicated().sum()) print("去除缺失值和重复值后有%d条数据" % (len(movie_data))) # 6.使用透视表查看每一部电影不同性别的平均评分 print("6.每一部电影不同性别的平均分".center(100, '*')) data_gender = pd.___(5)__(movie_data, index='Title', columns='Gender', values='Rating') print(data_gender.head()) # 7.计算评分分歧,找出男性和女性观众评分分歧最大的电影并进行排序 print("7.男性和女性评分分歧".center(100, '*')) # 新增一列diff,表示男女评分分歧(用男女分差的绝对值表示) data_gender['diff'] = ___(6)__(data_gender['F'] - data_gender['M']) # 按男女评分分歧降序排列 data_gender_sort = data_gender.sort_values(by='diff', ascending=___(7)__) print(data_gender_sort.head()) # 8.算出每部电影平均得分并对其进行降序排列(按Title分组,按Rating做聚合运算) print("8.每一部电影平均分并排序".center(100, '*')) mean_score_sort = movie_data.groupby(by='Title').agg({'Rating': '___(8)__'}).sort_values(by='Rating', ascending=False) print(mean_score_sort.head(20)) # 9.查看评分次数多的电影并进行降序排序(按Title分组,分组后聚合计算求分组大小) print("9.查看电影评分次数并排序".center(100, '*')) count = movie_data.groupby(by='Title').___(9)__().sort_values(ascending=False) print(count.head()) # 10.查看每一部电影被评论过的次数和被打的平均分 # 取出至少被评论过100次的电影按照平均评分从大到小排序,取最大的10部电影 print('10.最少被评论过100次的电影评分排序'.center(100, '*')) # 按Title分组,分组后对Rating求聚合计算,聚合函数为平均和数量统计 count_mean = movie_data.groupby(by='Title').agg({'Rating': ['count', 'mean']}) # 筛选数量大于等于100条的电影 count_mean_100 = count_mean[count_mean['Rating'][___(10)__] >= 100] # 筛选后按照分数降序排列 count_mean_100_sort = count_mean_100.sort_values(by=('Rating', 'mean'), ascending=False) print(count_mean_100_sort.head(10))

3月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

根据您提供的代码和问题,以下是对代码中空白处的填空答案和解释:

  1. merge: 用于合并两个DataFrame,需要指定合并的列。
  2. isnull: 用于检测DataFrame中的缺失值。
  3. duplicated: 用于检测DataFrame中的重复值。
  4. dropna: 用于删除DataFrame中的缺失值。
  5. pivot_table: 用于创建透视表。
  6. abs: 用于计算绝对值。
  7. False: 表示按降序排列。
  8. mean: 用于计算平均值。
  9. size: 用于计算分组的大小。
  10. count: 用于计算数量。

以下是填空后的完整代码:

import pandas as pd

# 1.读取数据
print("1.读取数据".center(100, '*'))
# 读取users.dat表中数据
users = pd.read_csv('./data/users.dat', sep='::', header=None, names=['UserID', 'Gender', 'Age', 'Occupation', 'Zip-code'], engine='python')
print("user表有%s条数据" % users.shape[0])
print(users.head())
# 读取movies.dat表中数据
movies = pd.read_csv('./data/movies.dat', sep='::', header=None, names=["MovieID", "Title", "Genres"], engine='python')
print("movies表有%s条数据" % movies.shape[0])
print(movies.head())
# 读取ratings.dat表中数据
ratings = pd.read_csv('./data/ratings.dat', sep='::', header=None, names=["UserID", "MovieID", "Rating", "Timestamp"], engine='python')
print("ratings表有%s条数据" % ratings.shape[0])
print(ratings.head())
# 主键合并三张表数据
movie_data = pd.merge(users, pd.merge(movies, ratings), on='UserID')  # 1
print("原始数据有%d条" % (len(movie_data)))

# 2.检测每一列缺失值的数量
print("2.缺失值检测".center(100, '*'))
# 查看每一列缺失值的数量
print(movie_data.isnull().sum())  # 2

# 3.检测有无重复值
print("3.重复值检测".center(100, '*'))
print(movie_data.duplicated().sum())  # 3

# 4.删除缺失值
print("4.删除缺失值".center(100, '*'))
# 按行删除缺失值
movie_data = movie_data.dropna()  # 4
# 删除缺失值后查看缺失值情况
print(movie_data.isnull().sum())

# 5.删除重复值
print("5.删除重复值".center(100, '*'))
movie_data = movie_data.drop_duplicates()
# 删除重复值后查看重复值情况
print(movie_data.duplicated().sum())
print("去除缺失值和重复值后有%d条数据" % (len(movie_data)))

# 6.使用透视表查看每一部电影不同性别的平均评分
print("6.每一部电影不同性别的平均分".center(100, '*'))
data_gender = pd.pivot_table(movie_data, index='Title', columns='Gender', values='Rating')  # 5
print(data_gender.head())

# 7.计算评分分歧,找出男性和女性观众评分分歧最大的电影并进行排序
print("7.男性和女性评分分歧".center(100, '*'))
# 新增一列diff,表示男女评分分歧(用男女分差的绝对值表示)
data_gender['diff'] = abs(data_gender['F'] - data_gender['M'])  # 6
# 按男女评分分歧降序排列
data_gender_sort = data_gender.sort_values(by='diff', ascending=False)  # 7
print(data_gender_sort.head())

# 8.算出每部电影平均得分并对其进行降序排列(按Title分组,按Rating做聚合运算)
print("8.每一部电影平均分并排序".center(100, '*'))
mean_score_sort = movie_data.groupby(by='Title').agg({'Rating': 'mean'}).sort_values(by='Rating', ascending=False)  # 8
print(mean_score_sort.head(20))

# 9.查看评分次数多的电影并进行降序排序(按Title分组,分组后聚合计算求分组大小)
print("9.查看电影评分次数并排序".center(100, '*'))
count = movie_data.groupby(by='Title').size().sort_values(ascending=False)  # 9
print(count.head())

# 10.查看每一部电影被评论
你觉得结果怎么样?
合并DataFrame的方法
如何检测DataFrame中的缺失值
删除DataFrame中的重复值
删除DataFrame中的缺失值
使用pivot_table创建透视表
计算DataFrame列之间的差异

以上内容由AI搜集生成,仅供参考

在线客服