编写代码,分别统计数据文件ratings.csv中的电影总数和评分大于4.0的电影总数 (rating 一列大于 4.0),并打印这两个数值,以及4.0分以上电影占 比
时间: 2024-02-28 21:57:32 浏览: 27
好的,下面是Python代码实现:
```
total_movies = 0
good_movies = 0
with open('ratings.csv', 'r') as f:
next(f) # 跳过首行
for line in f:
total_movies += 1
rating = float(line.strip().split(',')[2])
if rating > 4.0:
good_movies += 1
percentage = good_movies / total_movies * 100
print("总电影数:", total_movies)
print("4.0分以上电影数:", good_movies)
print("4.0分以上电影占比:{:.2f}%".format(percentage))
```
通过打开文件,使用循环遍历每一行数据。通过line.strip().split(',')获取每行数据中的评分,使用float()将其转换为浮点数,然后统计总电影数和好评电影数。最后计算好评电影占比并打印。
相关问题
编写代码,分别统计数据文件ratings.csv中的电影总数和评分大于4.0的电影总数(rating一列大于4.0),并打印这两个数值,以及4.0分以上电影占比:
以下是Python代码实现:
```python
total_movies = 0
high_rating_movies = 0
with open('ratings.csv', 'r') as f:
next(f) # 跳过文件头
for line in f:
fields = line.strip().split(',')
total_movies += 1
if float(fields[2]) > 4.0:
high_rating_movies += 1
print("总电影数:", total_movies)
print("评分大于4.0的电影数:", high_rating_movies)
print("4.0分以上电影占比:{:.2f}%".format(high_rating_movies / total_movies * 100))
```
解释一下代码:
首先,我们打开数据文件ratings.csv,使用 `next(f)` 跳过文件头。
然后,我们遍历文件中的每一行数据,使用 `strip()` 方法去除行末的换行符,再用 `split(',')` 方法将行数据按逗号分割成一个字符串列表。
接下来,我们将电影总数加1。如果列表的第三个元素(即评分)大于4.0,则将评分大于4.0的电影总数加1。
最后,我们打印电影总数、评分大于4.0的电影总数以及4.0分以上电影占比。注意,占比需要乘以100并保留两位小数,可以使用格式化字符串来实现。
3、编写代码,分别统计数据文件ratings.csv中的电影总数和评分大于4.0的电影总数(rating列大于4.0),并打印这两个数值,以及4.0分以上电影占比:
以下是使用Python实现的代码:
```python
import pandas as pd
# 读取数据文件
df = pd.read_csv('ratings.csv')
# 统计电影总数
total_movies = len(df['movieId'].unique())
# 统计评分大于4.0的电影总数
high_rating_movies = len(df[df['rating'] > 4.0]['movieId'].unique())
# 计算4.0分以上电影占比
high_rating_movies_ratio = high_rating_movies / total_movies * 100
# 打印统计结果
print("总电影数:", total_movies)
print("评分大于4.0的电影数:", high_rating_movies)
print("4.0分以上电影占比:{:.2f}%".format(high_rating_movies_ratio))
```
注意:代码中假设数据文件名为`ratings.csv`,请根据实际情况修改文件名。