我正在努力为这个data set找到评级最好的类型。我开始拆分类型,因为大多数行中有多个类型。然后,我对这些类型和它们的分数进行排序,计算出每种类型的平均分数。然后,我用每种类型和它们的平均分数更新数据框。然而,由于某种原因,列表中有重复的类型,我不知道为什么
dataGenre = data
df5 = pd.DataFrame(data={"Genre":dataYearScore['Genre'], "Score": dataYearScore['Score']})
df5 = df5.assign(Genre=df5['Genre'].str.split(',')).explode('Genre').reset_index(drop=True)
genre_list5 = []
avg_scores5 = []
for genre in df5["Genre"].unique():
genre_list5.append(genre)
avg_scores5.append(df5.loc[df5["Genre"]==genre, "Score"].mean())
plt.bar(genre_list5, avg_scores5, width = 0.8)
plt.xlabel('Genre')
plt.ylabel('Average Score')
plt.xticks(rotation=65)
plt.title('Average Score for Each Genre')
plt.show()
df5 = pd.DataFrame(data={"Genre":genre_list5, "Score": avg_scores5})
df5
我相信问题要么在第3行,要么在for循环中,但我不确定是什么在起作用。 任何帮助都将不胜感激:)
更新:
数据可以在这里找到https://www.kaggle.com/isaactaylorofficial/imdb-10000-most-voted-feature-films-041118
这是进口的
data = pd.read_csv('movies.csv')
我真的不需要图形,我只需要数据框有一个列,列中有类型(无重复)和它们的平均分数
df5 = pd.DataFrame(data={"Genre":genre_list5, "Score": avg_scores5})
df5
这是使用上面的代码检查的^
由于
comma
之前或之后可能有一些空格分隔两种类型,因此需要使用正则表达式模式\s*,\s*
和Series.str.split
来正确分割Genres
:绘制平均评分:
结果:
相关问题 更多 >
编程相关推荐